Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Caching 如何在我现有的php网站中添加服务人员_Caching_Service Worker_Progressive Web Apps - Fatal编程技术网

Caching 如何在我现有的php网站中添加服务人员

Caching 如何在我现有的php网站中添加服务人员,caching,service-worker,progressive-web-apps,Caching,Service Worker,Progressive Web Apps,我正在尝试在我现有的php移动站点中添加服务wroker,所以我想知道最好的方法是什么(比如设计模式)。 我可以缓存我所有的静态资产,比如css、js。但是如何缓存没有快速变化的实际html内容。我知道我可以基于网络请求进行缓存。但是如何缓存主视图的不同单元,因为它只有一个请求。您可以通过URL进行缓存,因此如果“/”是您的根URL,则可以进行缓存。它将缓存HTTP响应,因此最终与它的组成无关(包括它是PHP还是.NET) 话虽如此,如果页面上的内容发生了更改,您需要在缓存发生更改时使其无效,并

我正在尝试在我现有的php移动站点中添加服务wroker,所以我想知道最好的方法是什么(比如设计模式)。
我可以缓存我所有的静态资产,比如css、js。但是如何缓存没有快速变化的实际html内容。我知道我可以基于网络请求进行缓存。但是如何缓存主视图的不同单元,因为它只有一个请求。

您可以通过URL进行缓存,因此如果“/”是您的根URL,则可以进行缓存。它将缓存HTTP响应,因此最终与它的组成无关(包括它是PHP还是.NET)

话虽如此,如果页面上的内容发生了更改,您需要在缓存发生更改时使其无效,并检索最新内容,因此它可能不适合缓存

根据构建离线应用程序的经验,我缓存静态资产(HTML模板、CSS和JS),然后将API响应中的数据存储在IndexedDB中。这允许我拥有一个离线应用程序外壳(来自CacheAPI)&检索数据的最新版本(IndexedDB),当用户连接时,我可以刷新/更新IndexedDB内容


阅读更多信息:

您可以通过URL进行缓存,因此如果“/”是您的根URL,则可以进行缓存。它将缓存HTTP响应,因此最终与它的组成无关(包括它是PHP还是.NET)

话虽如此,如果页面上的内容发生了更改,您需要在缓存发生更改时使其无效,并检索最新内容,因此它可能不适合缓存

根据构建离线应用程序的经验,我缓存静态资产(HTML模板、CSS和JS),然后将API响应中的数据存储在IndexedDB中。这允许我拥有一个离线应用程序外壳(来自CacheAPI)&检索数据的最新版本(IndexedDB),当用户连接时,我可以刷新/更新IndexedDB内容


阅读更多内容:

如果我理解正确,我认为您只希望缓存同一HTML的特定部分。这不直接受支持,但您可以使用diff只下载新旧HTML文件之间的差异。我强烈建议你去看看


你也可以参考杰克·阿奇博尔德(Jake Archibald)的著作和《服务人员食谱》中的例子。两者都包括何时使用特定策略的建议。

如果我理解正确,我认为您只希望缓存同一HTML的特定部分。这不直接受支持,但您可以使用diff只下载新旧HTML文件之间的差异。我强烈建议你去看看


你也可以参考杰克·阿奇博尔德(Jake Archibald)的著作和《服务人员食谱》中的例子。两者都包括关于何时使用特定策略的建议。

关于主视图单元,您指的是什么?有关更多信息,请参阅此问题。我指的是将页面划分为模板的单元。关于主视图的单位,您指的是什么?更多信息,请参考此问题。我指的是将页面划分为模板的单元。对于在服务器上进行api调用的PhP网站,如果该网站必须在脱机模式下工作,我们如何通过service worker缓存api响应?大多数网站都有服务器端请求。服务工作者的角色位于客户端(JavaScript)和服务器响应之间。因此,如果您的网站内容是静态的,那么您可以缓存整个页面URL(例如:cache/about),但通常这些内容会发生变化,因此您需要找到一个好的策略,使用服务人员进行静态资产和存储(如indexedDB)对于可能更经常更改的内容。对于在服务器上进行api调用的PhP网站,如果该网站必须在脱机模式下工作,我们如何通过service worker缓存api响应?大多数网站都有服务器端请求。服务工作者的角色位于客户端(JavaScript)和服务器响应之间。因此,如果您的网站内容是静态的,那么您可以缓存整个页面URL(例如:cache/about),但通常情况下,此内容会发生变化,因此您需要找到一个好的策略,使用服务人员进行静态资产和存储(如indexedDB),以便更定期地更改内容。