PHP和JQuery应用程序崩溃IE

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了PHP和JQuery应用程序崩溃IE脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_403_6@ 我已经在这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的过期值,以确保始终刷新此数据
> Last Modified – 浏览器可以使用它将条件GET请求发送到服务器.服务器检查资源是否已更改晚于给定值,如果是,则返回更新的内容
>高速缓存控制 – 这允许代理和其他高速缓存将此资源的副本存储在共享(或非共享)池中,以便更快地访问资源.

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();
>使用POST而不是GET请求.由于POST请求旨在发送修改服务器上资源的请求,因此浏览器永远不会缓存它们.
>发送HTTP响应标头,专门禁止浏览器缓存它 – 这将在您的cpu.PHP中实现.您可以通过更改$http_response_header数组轻松修改内容(有关文档,请参阅here)
>使用jQuery.ajax()而不是jQuery.load():使用$.ajax(),您可以使用cache:false选项指定某些AJAX调用以强制刷新.或者甚至更多,您可以通过在ajaxSetup()中配置它来确保每次刷新所有AJAX调用:$.ajaxSetup({cache:false});.这与#1基本上是相同的解决方案,但无需在javascript代码中创建nonce值.

在所有备选方案中,#4是最好的保留您正在进行的请求类型,并且是最容易配置的.

一个建议 – 使用window.setInterval()来调用replay()函数是一种在请求之间设置等待间隔的简单方法,通常在客户端上实现可变长度睡眠周期比服务器更好.

脚本宝典总结

以上是脚本宝典为你收集整理的PHP和JQuery应用程序崩溃IE全部内容,希望文章能够帮你解决PHP和JQuery应用程序崩溃IE所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:jquery