Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.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
Javascript 自动执行http过期_Javascript_Http - Fatal编程技术网

Javascript 自动执行http过期

Javascript 自动执行http过期,javascript,http,Javascript,Http,我有一个用PHP编写的webapp,我使用header()函数生成标题 问题是,当我在客户端对我的应用程序的javascript代码进行更改时,旧的javascript不会被执行,因为它被缓存到客户端浏览器中 如何使标头过期过程自动化?我认为,与每次修改javascript代码时修改该函数相比,这是一种更好的方法。因为您只提供了一般指针,没有提供太多细节: 通常,您可以在Web服务器中配置Expires和其他头参数-全局和/或每个“文件夹”等 您可以使JS文件在1小时后过期。。。通过这种方式,您

我有一个用PHP编写的webapp,我使用header()函数生成标题

问题是,当我在客户端对我的应用程序的javascript代码进行更改时,旧的javascript不会被执行,因为它被缓存到客户端浏览器中


如何使标头过期过程自动化?我认为,与每次修改javascript代码时修改该函数相比,这是一种更好的方法。

因为您只提供了一般指针,没有提供太多细节:

通常,您可以在Web服务器中配置
Expires
和其他头参数-全局和/或每个“文件夹”等

您可以使JS文件在1小时后过期。。。通过这种方式,您将知道更改后1小时,所有客户端都将使用新的JS文件


如果您需要更改立即生效,即使对于当前处于活动状态的客户端,标题也不会有多大帮助-您必须执行一些AJAX魔术…

,因为您没有提供太多详细信息,只提供一般指针:

通常,您可以在Web服务器中配置
Expires
和其他头参数-全局和/或每个“文件夹”等

您可以使JS文件在1小时后过期。。。通过这种方式,您将知道更改后1小时,所有客户端都将使用新的JS文件


如果您需要更改立即生效,即使对于当前处于活动状态的客户端,标题也不会有多大帮助-您必须执行一些AJAX魔术…

在每个版本中将URI更改为脚本

这可以通过添加查询字符串来完成。例如,您可以通过从版本控制系统中获取修订号并将其插入模板来实现自动化


这将允许您有很长的过期时间(用于优化缓存),并且在每次发布新版本时仍然可以获得新的JavaScript(只要HTML文档没有从缓存加载(但与JS相比,它们的缓存时间往往较短))。

在每次发布时将URI更改为脚本

这可以通过添加查询字符串来完成。例如,您可以通过从版本控制系统中获取修订号并将其插入模板来实现自动化


这将允许您有较长的到期时间(用于优化缓存),并且在每次发布新版本时仍能获得新的JavaScript(只要HTML文档不是从缓存加载的(但与JS相比,它们的缓存时间往往较短)).

对javascript文件进行版本设置的最佳方法是在文件名中包含一个版本号。当您修改代码时,您会修改版本号,然后修改包含JS文件的任何网页以引用新文件名。然后,您只需要使网页本身过期,它们就会自动引用新的JS文件。JS文件可能有很长的过期时间(数月或数年),因此您可以为它们获得最大的缓存好处

这还可以确保获得一组一致的JS文件


jQuery就是这样进行版本控制的。

对javascript文件进行版本控制的最佳方法是在文件名中包含一个版本号。当您修改代码时,您会修改版本号,然后修改包含JS文件的任何网页以引用新文件名。然后,您只需要使网页本身过期,它们就会自动引用新的JS文件。JS文件可能有很长的过期时间(数月或数年),因此您可以为它们获得最大的缓存好处

这还可以确保获得一组一致的JS文件


jQuery就是这样使用版本控制的。

唯一的防弹解决方案是更改服务器端资源的文件名:

发件人:雅虎:

请记住,如果使用远未来过期标题,则必须在组件更改时更改组件的文件名。在雅虎!我们通常将此步骤作为构建过程的一部分:在组件的文件名[…]中嵌入一个版本号


当然,这个过程必须自动化。我们正在将JavaScript文件内容哈希添加到文件名中。

唯一的防弹解决方案是更改服务器端资源的文件名:

发件人:雅虎:

请记住,如果使用远未来过期标题,则必须在组件更改时更改组件的文件名。在雅虎!我们通常将此步骤作为构建过程的一部分:在组件的文件名[…]中嵌入一个版本号


当然,这个过程必须自动化。我们正在将JavaScript文件内容哈希添加到文件名中。

这是生产中的问题还是开发时的问题?这是生产中的问题还是开发时的问题?