PHP和JQuery应用程序崩溃IE
我已经在这个
PHP CPU和RAM监视器上工作了一段时间 –
http://nereus.rikkuness.net/php-cpu-monitor/
这一切都很有效,并做了它应该做的事情.但我使用Linux,因此没有太多能力在IE上进行测试.一些朋友说它适用于现代的一切但完全崩溃的IE. 只是想知道是否有人知道为什么会这样? 代码可在此处获取 – http://php-cpu-monitor.googlecode.com/files/php-cpu-monitor-1.0.tar.gz 解决方法
我在过去遇到了一些与此问题非常相似的问题,它们通常始终与
caching相关.由于您的AJAX请求被缓存,因此您的PHP脚本不再在用户给定的时间间隔内休眠,这就是为什么您我们看到请求的完成速度要快得多.
缓存的背景 您的Web服务器实际上只会发出三个响应标头来控制缓存AJAX资源的方式.这些适用于HTTP和AJAX请求.您并不需要为了您的目的而理解这些内容,但了解以下内容总是很好的信息: > Expires – 此标头告诉浏览器何时需要检索新版本的资源.例如,照片或公司徽标可能将Expires标头设置为未来几个月,因为我们不希望这些图像经常更改.另一方面,AJAX请求检索对时间敏感的CPU使用率数据应该具有-1的过期值,以确保始终刷新此数据 jQuery.load()如何工作 jQuery.load()通过在服务器上发送对html资源的简单GET请求来工作.请记住,jQuery load()函数是获取数据的最简单方法,并且通常不是最佳的数据检索方法.它旨在快速从服务器获取html,然后在您选择的jQuery DOM元素中填充html.这是docs的片段:
由于$.load()主要是将html插入jQuery元素的简单方法,因此jQuery库不提供确保不缓存请求的机制.这是合理的,因为如果您只是检索HTML,我们可以通过缓存这些响应来获得更高的性能,特别是如果它们没有更改并且经常被轮询. 在我测试的所有浏览器中,看起来IE(9)是唯一一个持续缓存AJAX请求的浏览器.看看Firefox与Internet Explorer中的请求之间的区别: 火狐: IE浏览器: 注意来自IE的可疑< 1 ms响应时间. IE doesn’t ever refresh cached content before it’s expiration date,在缓存方面也没有区分HTTP和AJAX请求.我们需要尝试不同的解决方案,以确保每次调用您的AJAX URL时我们都会收到新数据. 阻止Internet Explorer缓存AJAX请求 我们可以通过几种不同的方式来解决IE的缓存限制: >将随机标记(nonce值)添加到查询字符串,例如?token = [timestamp].通过更改每个请求的请求URL,浏览器将为每个请求存储资源的不同缓存副本,并确保从服务器获取最新数据. jQuery通过简单地获取时间戳来创建一个nonce值:var nonce =(new Date()).getTime(); 在所有备选方案中,#4是最好的保留您正在进行的请求类型,并且是最容易配置的. 另一个建议 – 使用window.setInterval()来调用replay()函数是一种在请求之间设置等待间隔的简单方法,通常在客户端上实现可变长度睡眠周期比服务器更好. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |