新的 jQuery v1.4 是这么说的……

jquery.ajax()现在使用onreadystatechange而不是计时器

Ajax请求现在应该使用ReadyStateChange而不是轮询来获取更少的资源。

我不确定这到底意味着什么,但在我的网站(像 facebook、myspace 这样的社交网络)上,我有用户收到的通知,它会定期进行 AJAX 调用,以查看页面上是否有新的通知显示,这是否可以改进类似事情的完成方式?

有帮助吗?

解决方案

是的,它会改善您的网站。根据您的站点使用的 AJAX 数量,速度方面的改进不会像调用期间使用的系统资源减少那么明显。

IE6不支持 onreadystatechange 所以我假设它会回退到 IE6 的计时器,但 XMLHTTPRequest 的大多数其他浏览器实现都支持该事件。事件回调始终使用比轮询脚本(每隔几毫秒检查一次)更少的资源。

关于IE6

onreadystatechange 事件是在 Windows Internet Explorer 7 中引入的。 来源:微软软件定义网络

其他提示

2道格Neiner

IE 6的绝对支持事件的onreadystatechange。我现在在IE上XPSP2 6.0.2可以看到它。 MSDN指出XmlHttpRequest对象,因为IE 7版本支持,包括其所有事件。现代库(如jQuery)的解决方法本通过手动创建对象“Microsoft.XMLHTTP”或“MSXML2.XMLHTTP”,这两者都支承onreadystatechange事件。 例如此处(MSDN)。

好运。

PS回答这里怎么把该线程在谷歌结果的顶部10搜索“的onreadystatechange jquery的”

onReadyStateChangexmlHttpRequest对象上的属性。它看起来像$.ajax以前轮询XHR,看它是否准备好了,但现在不是听实际事件。这意味着它消耗更少的JavaScript资源,它不会解除您的任何服务器资源,因为你还要做AJAX轮询的的意义。因此,它不是真的,你要实现什么新技术,它只是在后面发生的事情的差异,并利用了改进,所有你需要做的是切换到新版本。

我猜(但我不知道),现在他们使用onReadyStateChange,你也可以通过自己的回调方法,以该事件,这将允许你做的彗星(‘AJAX推’),这有可能提高你的服务器端性能。但要注意,彗星可以是棘手以实现:)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top