在进行 setInterval 调用之前,所有一切看上去都工作得不错。这个调用将设置监视请求状态的计时器,然后使用下载的资源设置页面内容。
setInterval
我将展示一个更好的解决方案,用来计算出什么时候请求能够完成。同时,清单 2 展示了页面正在请求的文件。
<b>Hello there</b>
要查看真实环境的演示,请查看这个在线版本 antipat1_content.html.
同时 图 1 显示了在我的浏览器中看到的页面。
所以,您可能会问自己,“它现在可以工作,不是吗?如果没有出现故障的话,为什么要修复呢?” 实际上已经出现故障了,因为程序运行得非常慢。计时器将时间间隔设置为 1 秒,随着时间的流逝,请求完全超过了时间间隔。所以,您将看到页面首先出现一个空的框,然后再等待一秒钟,忽然出现大量的内容。多么糟糕!
如何解决呢?Ajax 天生就是异步的。难道不需要进行轮询循环就能查看何时完成请求吗?
结果证明,并非如此。正如我在 清单 3 中展示的一样,XMLHTTPRequest 对象所提供的全部内容是一个名为 onreadystatechange 的回调机制。(多么好听的名字,让人想起了 VAX PDP/11s)。
XMLHTTPRequest
onreadystatechange
(编辑:aniston)
·2024年12月目录 ·2024年11月目录 ·2024年10月目录 ·2024年9月目录 ·2024年8月目录 ·2024年7月目录 ·2024年6月目录 ·2024年5月目录 ·2024年4月目录 ·2024年3月目录 ·2024年2月目录 ·2024年1月目录 ·2023年12月目录 ·2023年11月目录