Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.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 使用jQuery';s$.getScript(),我是否可以检测304个未修改的标题?_Javascript_Jquery_Header - Fatal编程技术网

Javascript 使用jQuery';s$.getScript(),我是否可以检测304个未修改的标题?

Javascript 使用jQuery';s$.getScript(),我是否可以检测304个未修改的标题?,javascript,jquery,header,Javascript,Jquery,Header,我有一个应用程序(小部件),其中我在5分钟计时器上使用$.getScript(),每5分钟加载一个文件。然后,我获取刚刚下载的文件的内容,并重建我的页面,以便我的小部件可以更新。但是,在大多数情况下,该文件保持不变,当我的计时器执行$.getScript()时,firebug每5分钟显示一个304 Not Modified头 我想知道文件什么时候没有被修改,这样我就不会耗尽用户资源,无缘无故地重建页面 使用$.getScript()时是否可以获取html标题?而不是(),使用()-这更强大,并减

我有一个应用程序(小部件),其中我在5分钟计时器上使用$.getScript(),每5分钟加载一个文件。然后,我获取刚刚下载的文件的内容,并重建我的页面,以便我的小部件可以更新。但是,在大多数情况下,该文件保持不变,当我的计时器执行$.getScript()时,firebug每5分钟显示一个304 Not Modified头

我想知道文件什么时候没有被修改,这样我就不会耗尽用户资源,无缘无故地重建页面

使用$.getScript()时是否可以获取html标题?

而不是(),使用()-这更强大,并减少了函数调用

请注意,get()、post()和getScript()只允许将函数绑定到成功。在我看来,使用函数而不是所有快捷方式是一种很好的做法,因为我已经提到了这些原因

您需要完整的事件,因为它为您提供了(XHR)对象

为了达到与()相同的效果,必须将
dataType:'script'
添加到ajax选项中

现在,您可以使用complete事件来检查XHR代码,并在未修改的情况下返回

例如:

$.ajax({
    url: 'your-url',
    dataType: 'script',
    complete: function(xhr) { 
        if (xhr.status == 304) return;
        // or better: if (xhr.status != 200) return;
        // your code goes here
    }
});
您不能预先知道资源没有被修改(如果您在客户端没有一些逻辑)


您必须询问服务器,它会提前检查并发送304代码(因此速度更快,并减少服务器的负载)。

不适用于我:我可以在自己的服务器上对文件执行此操作,但实际上我是在从远程域访问文件。当文件来自远程域时,这将失败。它确实完成了,但没有将XMLHttpRequest对象传递到complete函数中,因此最终会出现“xhr未定义”错误,从而停止脚本。如果不尝试访问XMLHttpRequest对象,则会成功地从远程域加载脚本,但会再次无法访问头信息。好的,这会改变一些情况。现在我没有主意,但您至少可以存储每个结果的md5,并将其与新数据进行比较:
$(data.data('md5',md5(data))