繁体   English   中英

使用jQuery的$ .getScript(),我可以感知304未修改的标头吗?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM