[英]Using jQuery's $.getScript(), can I sense 304 Not Modified Headers?
我有一个应用程序(小部件),其中我在5分钟的计时器上使用$ .getScript(),每五分钟加载一次文件。 然后,我获取刚刚下载的文件的内容,并重建页面,以便可以更新我的小部件。 但是,大多数情况下,文件未更改,并且当我的计时器执行$ .getScript()时,firebug每5分钟显示304 Not Modified标头。
我想知道何时未修改文件,以便不浪费用户资源,无故重建页面。
使用$ .getScript()时是否可以获得html标头?
代替getScript (),请使用ajax ()-它更强大,并且减少了函数调用。
请注意,get(),post()和getScript()仅允许您将函数绑定为成功。 我认为,由于我提到的原因,使用ajax函数代替所有快捷方式是一个好习惯。
您需要complete事件,因为它为您提供了xmlHttpRequest (XHR)对象。
为了获得与getScript ()相同的效果,您必须在ajax选项中添加dataType: 'script'
。
现在,您可以使用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代码(这样可以更快并减少服务器的负载)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.