你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:技术专栏 / Java专栏
Ajax 和 XML: 五种 Ajax 反模式(3)
 

在进行 setInterval 调用之前,所有一切看上去都工作得不错。这个调用将设置监视请求状态的计时器,然后使用下载的资源设置页面内容。

我将展示一个更好的解决方案,用来计算出什么时候请求能够完成。同时,清单 2 展示了页面正在请求的文件。


清单 2. Antipat1_content.html
                
<b>Hello there</b>

要查看真实环境的演示,请查看这个在线版本 在新窗口中打开链接以查看 antipat1_content.html antipat1_content.html.

同时 图 1 显示了在我的浏览器中看到的页面。


图 1. 放置在 HTML 文档中的内容
放置在 HTML 文档中的内容

所以,您可能会问自己,“它现在可以工作,不是吗?如果没有出现故障的话,为什么要修复呢?” 实际上已经出现故障了,因为程序运行得非常慢。计时器将时间间隔设置为 1 秒,随着时间的流逝,请求完全超过了时间间隔。所以,您将看到页面首先出现一个空的框,然后再等待一秒钟,忽然出现大量的内容。多么糟糕!

如何解决呢?Ajax 天生就是异步的。难道不需要进行轮询循环就能查看何时完成请求吗?

结果证明,并非如此。正如我在 清单 3 中展示的一样,XMLHTTPRequest 对象所提供的全部内容是一个名为 onreadystatechange 的回调机制。(多么好听的名字,让人想起了 VAX PDP/11s)。

(编辑: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月目录

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089