惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Hackread – Cybersecurity News, Data Breaches, AI and More
Security Archives - TechRepublic
Security Archives - TechRepublic
I
Intezer
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
C
CXSECURITY Database RSS Feed - CXSecurity.com
A
Arctic Wolf
T
Threatpost
P
Proofpoint News Feed
AWS News Blog
AWS News Blog
C
Cybersecurity and Infrastructure Security Agency CISA
G
GRAHAM CLULEY
Cisco Talos Blog
Cisco Talos Blog
Simon Willison's Weblog
Simon Willison's Weblog
L
Lohrmann on Cybersecurity
Scott Helme
Scott Helme
T
Tenable Blog
L
LINUX DO - 最新话题
Help Net Security
Help Net Security
WordPress大学
WordPress大学
Hacker News: Ask HN
Hacker News: Ask HN
人人都是产品经理
人人都是产品经理
MyScale Blog
MyScale Blog
Recent Commits to openclaw:main
Recent Commits to openclaw:main
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Recent Announcements
Recent Announcements
Vercel News
Vercel News
The Hacker News
The Hacker News
J
Java Code Geeks
博客园 - 【当耐特】
D
Docker
V
V2EX
H
Heimdal Security Blog
GbyAI
GbyAI
博客园 - 叶小钗
Google DeepMind News
Google DeepMind News
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
N
News | PayPal Newsroom
The Register - Security
The Register - Security
The Cloudflare Blog
C
CERT Recently Published Vulnerability Notes
T
The Blog of Author Tim Ferriss
博客园 - Franky
MongoDB | Blog
MongoDB | Blog
SecWiki News
SecWiki News
S
Secure Thoughts
Attack and Defense Labs
Attack and Defense Labs
Microsoft Security Blog
Microsoft Security Blog
S
Schneier on Security
Latest news
Latest news
Project Zero
Project Zero

博客园 - 良村

元数据驱动开发 - 面向对象编程思想的补充 用ANTLR实现表达式词法和语法分析器 我的开源项目分享-基于SharpBrowser二次开发的定制浏览器,过程中填坑无数 AI是什么 现阶段AI编程无法取代程序员 用zrender实现工作流图形化设计(附范例代码) 特殊字符
导致的Javascript脚本异常 不同寻常的浏览器请求无响应错误 进销存管理中对红冲处理的误区 进销存管理中负库存产生的原因以及对应措施 打造自己的Html文本编辑控件 探讨对Web控件的异常处理 看了一篇不错的文章 - 使用 UTF-8 对 XML 文档进行编码 Ajax 学习笔记(1) ASP.NET控件编写日记-当心“用过的控件”! ASP.NET控件编写心得总结- 以后会写详细一点 CodeDom.CodeArrayCreateExpression不能生成多维数组的创建表达式 用NAnt编译带有资源文件(*.resx,*.bmp,*.gif等)的C#项目 网址收藏 C#实现Singleton的两种方法的比较 发现Maxthon(myIE2)浏览器处理javascript脚本时的奇怪现象 - 良村 - 博客园 页面缓冲与Asp.Net的性能优化(设置Page.Buffer属性) 如何使用AdminScripts脚本创建虚拟目录 采用HttpModules来重写URLs(实践篇)
Ajax学习笔记(2) - 一定要用XML吗?
良村 · 2005-08-21 · via 博客园 - 良村

Ajax一定要用XML吗?我觉得不一定用。

不用XML的理由:
1. javascript脚本解析Xml比较慢;
2. 对于一些简单数据,用Xml有点大炮轰蚊子的感觉;
3. XmlHttp提供了responseText,就是给了大家不用Xml的方便;

不用Xml用什么?
可以采用技术很多,对于简单数据你可以返回自定义的数据格式,比如,第1位是状态位,第2位之后是数据。对于复杂数据,你甚至可以直接返回javascript脚本,然后用eval执行。

在最近写的一个无刷新聊天程序中,我就使用了直接返回javascript脚本的方式,下面是自动获取消息的部分代码。

var xmlhttp=createXH();
function checkMsg(){
  xmlhttp.open('Get', 'Message/CheckNew.aspx', true);
  xmlhttp.onreadystatechange=continueCheckMsg;
  xmlhttp.send('');
}

function continueCheckMsg(){
  if(xmlhttp.readyState==4){
    var rt=xmlhttp.responseText;
    if(rt!=''){
      var msgs=eval(rt);
      // ... 接下来就是处理消息分发
    }
  }
  setTimeout('checkMsg()', 10000); // 每隔10秒刷新一次
}

说明:
1. rt=xmlhttp.responseText返回新消息的数据,当没有新消息时,返回空;当有新消息时(可以使多条),返回的内容格式如下:
[['发送人1','发送时间1','消息内容1'], ['发送人2','发送时间2','消息内容2'], ...]
2. 通过var msgs=eval(rt)后,msgs就是存放了n条消息的二维数组,然后按二维数组的方式处理就可以了;

最后,收集了一篇比较有用的文章,里面对使用Xml有详细介绍:
http://www.dragonson.com/doc/ajax.html