﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-啊啦神灯-随笔分类-js/ajax</title><link>http://www.cnitblog.com/myshare/category/3830.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 30 Sep 2011 00:03:29 GMT</lastBuildDate><pubDate>Fri, 30 Sep 2011 00:03:29 GMT</pubDate><ttl>60</ttl><item><title>几个表单验证函数</title><link>http://www.cnitblog.com/myshare/archive/2006/09/16/16934.html</link><dc:creator>啊啦神灯</dc:creator><author>啊啦神灯</author><pubDate>Sat, 16 Sep 2006 07:32:00 GMT</pubDate><guid>http://www.cnitblog.com/myshare/archive/2006/09/16/16934.html</guid><wfw:comment>http://www.cnitblog.com/myshare/comments/16934.html</wfw:comment><comments>http://www.cnitblog.com/myshare/archive/2006/09/16/16934.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/myshare/comments/commentRss/16934.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/myshare/services/trackbacks/16934.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &lt;				script language				=				"				javascript				"				&gt;																								//				限制输入字符的位数开始																//				m是用户输入，n是要限制的位数																				...&nbsp;&nbsp;<a href='http://www.cnitblog.com/myshare/archive/2006/09/16/16934.html'>阅读全文</a><img src ="http://www.cnitblog.com/myshare/aggbug/16934.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/myshare/" target="_blank">啊啦神灯</a> 2006-09-16 15:32 <a href="http://www.cnitblog.com/myshare/archive/2006/09/16/16934.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JS里面用什么函数取一个字符串里面的左起第一个字符</title><link>http://www.cnitblog.com/myshare/archive/2006/09/16/16933.html</link><dc:creator>啊啦神灯</dc:creator><author>啊啦神灯</author><pubDate>Sat, 16 Sep 2006 07:30:00 GMT</pubDate><guid>http://www.cnitblog.com/myshare/archive/2006/09/16/16933.html</guid><wfw:comment>http://www.cnitblog.com/myshare/comments/16933.html</wfw:comment><comments>http://www.cnitblog.com/myshare/archive/2006/09/16/16933.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/myshare/comments/commentRss/16933.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/myshare/services/trackbacks/16933.html</trackback:ping><description><![CDATA[substr 方法 <br />返回一个从指定位置开始的指定长度的子字符串。 <br /><br />stringvar.substr(start [, length ]) <br /><br />代码： <br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">script</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000"> img</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">'abc' <br /><img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" />alert(img.substr(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)); <br /><img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">script</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> </span></div><br /><img src ="http://www.cnitblog.com/myshare/aggbug/16933.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/myshare/" target="_blank">啊啦神灯</a> 2006-09-16 15:30 <a href="http://www.cnitblog.com/myshare/archive/2006/09/16/16933.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javascript 判断是否为数字</title><link>http://www.cnitblog.com/myshare/archive/2006/09/16/16932.html</link><dc:creator>啊啦神灯</dc:creator><author>啊啦神灯</author><pubDate>Sat, 16 Sep 2006 07:26:00 GMT</pubDate><guid>http://www.cnitblog.com/myshare/archive/2006/09/16/16932.html</guid><wfw:comment>http://www.cnitblog.com/myshare/comments/16932.html</wfw:comment><comments>http://www.cnitblog.com/myshare/archive/2006/09/16/16932.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnitblog.com/myshare/comments/commentRss/16932.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/myshare/services/trackbacks/16932.html</trackback:ping><description><![CDATA[isNaN 函数 <br />isNaN(expression:Object) : Boolean <br /><br />计算参数，如果值为 NaN（非数字），则返回 true。此函数可用于检查一个数学表达式是否成功地计算为一个数字。 <br /><br />可用性：Flash Player 5；ActionScript 1.0 <br /><br />参数 <br />expression:Object - 要计算的布尔值、变量或其它表达式。 <br /><br />返回 <br />Boolean - 一个布尔值。 <br /><br />例子： <br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img id="Codehighlighter1_39_119_Open_Image" onclick="this.style.display='none'; Codehighlighter1_39_119_Open_Text.style.display='none'; Codehighlighter1_39_119_Closed_Image.style.display='inline'; Codehighlighter1_39_119_Closed_Text.style.display='inline';" src="http://www.cnitblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_39_119_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_39_119_Closed_Text.style.display='none'; Codehighlighter1_39_119_Open_Image.style.display='inline'; Codehighlighter1_39_119_Open_Text.style.display='inline';" src="http://www.cnitblog.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(isNaN(document.login.imgcode.value))</span><span id="Codehighlighter1_39_119_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"></span><span id="Codehighlighter1_39_119_Open_Text"><span style="COLOR: #000000">{ <br /><img src="http://www.cnitblog.com/images/OutliningIndicators/InBlock.gif" align="top" />   alert('验证码必须是数字！') <br /><img src="http://www.cnitblog.com/images/OutliningIndicators/InBlock.gif" align="top" />   document.login.imgcode.focus(); <br /><img src="http://www.cnitblog.com/images/OutliningIndicators/InBlock.gif" align="top" />   </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">false</span><span style="COLOR: #000000">; <br /><img src="http://www.cnitblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span></div><img src ="http://www.cnitblog.com/myshare/aggbug/16932.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/myshare/" target="_blank">啊啦神灯</a> 2006-09-16 15:26 <a href="http://www.cnitblog.com/myshare/archive/2006/09/16/16932.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用JSON技术加快AJAX程序开发</title><link>http://www.cnitblog.com/myshare/archive/2006/09/15/16903.html</link><dc:creator>啊啦神灯</dc:creator><author>啊啦神灯</author><pubDate>Fri, 15 Sep 2006 12:20:00 GMT</pubDate><guid>http://www.cnitblog.com/myshare/archive/2006/09/15/16903.html</guid><wfw:comment>http://www.cnitblog.com/myshare/comments/16903.html</wfw:comment><comments>http://www.cnitblog.com/myshare/archive/2006/09/15/16903.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/myshare/comments/commentRss/16903.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/myshare/services/trackbacks/16903.html</trackback:ping><description><![CDATA[
		<p>
				<strong>一、引言</strong>
		</p>
		<p>当微软把ActiveX XMLHTTP对象纳入到JavaScript的Internet Explorer实现中时，它实际上已经为Web应用程序的又一次革命（异步JavaScript+XML，简称AJAX）埋下了“火种”。今天，Firefox，Safari，Opera及其它浏览器都支持XMLHttpRequest对象，正是这些支持最终才导致了诸如colr.org，backpackit.com和maps.google.com等著名网站的产生。尽管这些网站（不止这些）所提供的应用程序运行于一种浏览器中，但是它们在行为和外观上却极类似于传统的桌面应用程序。</p>
		<br />
		<p>在AJAX技术中，在用户观看并与页面交互的同时（这正相应于AJAX中的“异步”部分），由页面中的JavaScript负责把数据请求发送到一个Web服务器。这些请求只是一些普通的HTTP请求，与浏览器用于页面（连同其中的任何图像，层叠式样表等内容）检索的HTTP完全相同。同时，XMLHttpRequest对象可以用于检索任何类型的数据，而不仅仅是XML类型。例如，JavaScript可以使用XMLHttpRequest来检索一个来自于Web服务器的普通文本文本并且把它的内容显示于一个表单中。</p>
		<p>通过查找位于数据之前的“content-type”头部，XMLHttpRequest对象分析从Web服务器返回的数据的MIME类型。例如，如果这些数据的MIME类型是“text/plain”，那么你可以通过分析XMLHttpRequest对象的responseText属性来存取它；然而，如果其MIME类型为“text/xml”，那么XMLHttpRequest对象必须采取额外的措施：它要在返回的文档对象上运行一个XML分析器并在内存中构建一棵文档对象模型（DOM）树来描述该文档，并且还要使其可用于responseXML属性。然后，你才可以使用JavaScript的标准DOM方法在树中导航并检索元素、属性及位于该DOM树中的其它文本。</p>
		<p>虽然XML是进行数据交换的标准方式，但是通常它不是最好的方式。尽管XML可以把结构和元数据添加到数据上，但是它使用了一种相当繁琐的方式。XML还有一种相对复杂的语法，因而需要一种分析器对之进行专门分析。在JavaScript中，XML必须被分析成一棵以备后用的DOM树。并且，一旦你构建了这棵DOM树，你还必须在其中导航以便创建相应的JavaScript对象或者以其它方式在你的客户端Web应用程序中使用XML数据。<br />幸好，你还有另外更好的可选方案。</p>
		<p>
				<strong>二、JSON简介</strong>
		</p>
		<p>JavaScript对象标志，简称JSON，是一种描述数据的轻量级语法。JSON的优越性基于这样的事实：它本身就是JavaScript语言的一个子集。你会在后面看到这种特征的重要性。首先，让我们比较一下JSON和XML的原始语法。<br />XML和JSON都使用结构化方法来标记数据。例如，一个地址簿应用程序可能提供一个Web服务—它将以XML形式生成如下的地址卡片：<br /></p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img id="Code_Closed_Image" onclick="this.style.display='none'; Code_Closed_Text.style.display='none'; Code_Open_Image.style.display='inline'; Code_Open_Text.style.display='inline';" height="16" src="http://www.cnitblog.com/images/OutliningIndicators/ContractedBlock.gif" width="11" align="top" />
				<img id="Code_Open_Image" style="DISPLAY: none" onclick="this.style.display='none'; Code_Open_Text.style.display='none'; Code_Closed_Image.style.display='inline'; Code_Closed_Text.style.display='inline';" height="16" src="http://www.cnitblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" width="11" align="top" />
				<span id="Code_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">xml代码</span>
				<span id="Code_Open_Text" style="DISPLAY: none">
						<br />
						<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->
						<img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" />
						<span style="COLOR: #0000ff">&lt;?</span>
						<span style="COLOR: #ff00ff">xml version='1.0' encoding='UTF-8'</span>
						<span style="COLOR: #0000ff">?&gt;</span>
						<span style="COLOR: #0000ff">&lt;</span>
						<span style="COLOR: #800000">card</span>
						<span style="COLOR: #0000ff">&gt;&lt;</span>
						<span style="COLOR: #800000">fullname</span>
						<span style="COLOR: #0000ff">&gt;</span>
						<span style="COLOR: #000000">Sean Kelly</span>
						<span style="COLOR: #0000ff">&lt;/</span>
						<span style="COLOR: #800000">fullname</span>
						<span style="COLOR: #0000ff">&gt;&lt;</span>
						<span style="COLOR: #800000">org</span>
						<span style="COLOR: #0000ff">&gt;</span>
						<span style="COLOR: #000000">SK Consulting</span>
						<span style="COLOR: #0000ff">&lt;/</span>
						<span style="COLOR: #800000">org</span>
						<span style="COLOR: #0000ff">&gt;&lt;</span>
						<span style="COLOR: #800000">emailaddrs</span>
						<span style="COLOR: #0000ff">&gt;&lt;</span>
						<span style="COLOR: #800000">address </span>
						<span style="COLOR: #ff0000">type</span>
						<span style="COLOR: #0000ff">='work'&gt;kelly@seankelly.biz&lt;/address&gt;&lt;address </span>
						<span style="COLOR: #ff0000">type</span>
						<span style="COLOR: #0000ff">='home' </span>
						<span style="COLOR: #ff0000">pref</span>
						<span style="COLOR: #0000ff">='1'&gt;kelly@seankelly.tv&lt;/address&gt;&lt;/emailaddrs&gt;&lt;telephones&gt;&lt;tel </span>
						<span style="COLOR: #ff0000">type</span>
						<span style="COLOR: #0000ff">='work' </span>
						<span style="COLOR: #ff0000">pref</span>
						<span style="COLOR: #0000ff">='1'&gt;+1 </span>
						<span style="COLOR: #ff0000">214 555 1212&lt;/tel</span>
						<span style="COLOR: #0000ff">&gt;&lt;</span>
						<span style="COLOR: #800000">tel </span>
						<span style="COLOR: #ff0000">type</span>
						<span style="COLOR: #0000ff">='fax'&gt;+1 </span>
						<span style="COLOR: #ff0000">214 555 1213&lt;/tel</span>
						<span style="COLOR: #0000ff">&gt;&lt;</span>
						<span style="COLOR: #800000">tel </span>
						<span style="COLOR: #ff0000">type</span>
						<span style="COLOR: #0000ff">='mobile'&gt;+1 </span>
						<span style="COLOR: #ff0000">214 555 1214&lt;/tel</span>
						<span style="COLOR: #0000ff">&gt;&lt;/</span>
						<span style="COLOR: #800000">telephones</span>
						<span style="COLOR: #0000ff">&gt;&lt;</span>
						<span style="COLOR: #800000">addresses</span>
						<span style="COLOR: #0000ff">&gt;&lt;</span>
						<span style="COLOR: #800000">address </span>
						<span style="COLOR: #ff0000">type</span>
						<span style="COLOR: #0000ff">='work' </span>
						<span style="COLOR: #ff0000">format</span>
						<span style="COLOR: #0000ff">='us'&gt;1234 </span>
						<span style="COLOR: #ff0000">Main StSpringfield， TX 78080-1216&lt;/address</span>
						<span style="COLOR: #0000ff">&gt;&lt;</span>
						<span style="COLOR: #800000">address </span>
						<span style="COLOR: #ff0000">type</span>
						<span style="COLOR: #0000ff">='home' </span>
						<span style="COLOR: #ff0000">format</span>
						<span style="COLOR: #0000ff">='us'&gt;5678 </span>
						<span style="COLOR: #ff0000">Main StSpringfield， TX 78080-1316&lt;/address</span>
						<span style="COLOR: #0000ff">&gt;&lt;/</span>
						<span style="COLOR: #800000">addresses</span>
						<span style="COLOR: #0000ff">&gt;&lt;</span>
						<span style="COLOR: #800000">urls</span>
						<span style="COLOR: #0000ff">&gt;&lt;</span>
						<span style="COLOR: #800000">address </span>
						<span style="COLOR: #ff0000">type</span>
						<span style="COLOR: #0000ff">='work'&gt;http://seankelly.biz/&lt;/address&gt;&lt;address </span>
						<span style="COLOR: #ff0000">type</span>
						<span style="COLOR: #0000ff">='home'&gt;http://seankelly.tv/&lt;/address&gt;&lt;/urls&gt;&lt;/card&gt;</span>
				</span>
		</div>而使用JSON来表达，上面的形式将变成如下模样： <br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">"</span><span style="COLOR: #000000">fullname</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">: </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Sean Kelly</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">，</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">org</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">: </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">SK Consulting</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">，</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">emailaddrs</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">: [{</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">type</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">: </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">work</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">， </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">value</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">: kelly@seankelly.biz</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">}，{</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">type</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">: </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">home</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">， </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">pref</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">: 1， </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">value</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">: </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">kelly@seankelly.tv</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">}]，</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">telephones</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">: [{</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">type</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">: </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">work</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">， </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">pref</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">: 1， </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">value</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">: </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">214</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">555</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">1212</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">}，{</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">type</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">: </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">fax</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">， </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">value</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">: </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">214</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">555</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">1213</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">}，{</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">type</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">: </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">mobile</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">， </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">value</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">: </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">214</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">555</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">1214</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">}]，</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">addresses</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">: [{</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">type</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">: </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">work</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">， </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">format</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">: </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">us</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">，</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">value</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">: </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">1234</span><span style="COLOR: #000000"> Main StnSpringfield， TX </span><span style="COLOR: #000000">78080</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1216</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">}，{</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">type</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">: </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">home</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">， </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">format</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">: </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">us</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">，</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">value</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">: </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">5678</span><span style="COLOR: #000000"> Main StnSpringfield， TX </span><span style="COLOR: #000000">78080</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1316</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">}]，</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">urls</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">: [{</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">type</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">: </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">work</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">， </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">value</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">: </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">http:</span><span style="COLOR: #000000">//</span><span style="COLOR: #000000">seankelly.biz</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">}，{</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">type</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">: </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">home</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">， </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">value</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">: </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">http:</span><span style="COLOR: #000000">//</span><span style="COLOR: #000000">seankelly.tv</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">}]}</span></div><p>正如你所见，JSON也提供了一种具有嵌套数据元素的结构，就象XML一样。与XML一样，JSON也是基于文本的，且它们都使用Unicode编码，且其与XML一样具有可读性。主观上来看，JSON更为清晰且冗余更少些。JSON网站提供了对JSON语法的严格描述，只是描述较简短。从总体来看，XML比较适合于标记文档，而JSON却更适于进行数据交换处理。一个JSON文档的每一个实例都负责描述一个对象—具体的描述是通过使用嵌套的对象，数组，字符串，数字，布尔值或null值来实现的。</p><p>上面地址卡例子的JSON版本更为小些，仅占用大约682字节的空间，而XML版本需要744字节空间。当然，这不是什么惊人的节省。其实，JSON的真正优点在于数据分析方面。</p><p><strong>三、JSON与XML数据分析对比</strong></p><p>借助于XMLHttpRequest对象，你可以从自己的基于AJAX的应用程序内部检索XML和JSON文件。典型情况下，你可以使用类似如下的交互：<br /></p><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">var req </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> XMLHttpRequest();req.open(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">GET</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">，</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">http://localhost/addr?cardID=32</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">， </span><span style="COLOR: #000000">/*</span><span style="COLOR: #000000">async</span><span style="COLOR: #000000">*/</span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">);req.onreadystatechange </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> myHandler;req.send(</span><span style="COLOR: #000000">/*</span><span style="COLOR: #000000">no params</span><span style="COLOR: #000000">*/</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">);<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" /> <br /><img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" /></span></div><p>随着对Web服务器的不断响应，被你传递的处理器函数（在本例中是myHandler）被反复调用，这种特征提供给你一种时机—及早地取消事务，更新一个进度条，等等。通常，你只是在Web请求完成时才采取行动（应用返回的数据）。</p><p>为了处理上面地址卡程序的XML版本，myHandler的编码可以类似如下：<br /></p><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img id="Code_Closed_Image" onclick="this.style.display='none'; Code_Closed_Text.style.display='none'; Code_Open_Image.style.display='inline'; Code_Open_Text.style.display='inline';" height="16" src="http://www.cnitblog.com/images/OutliningIndicators/ContractedBlock.gif" width="11" align="top" /><img id="Code_Open_Image" style="DISPLAY: none" onclick="this.style.display='none'; Code_Open_Text.style.display='none'; Code_Closed_Image.style.display='inline'; Code_Closed_Text.style.display='inline';" height="16" src="http://www.cnitblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" width="11" align="top" /><span id="Code_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"></span><span id="Code_Open_Text" style="DISPLAY: none"><br /><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000"> myHandler() {<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> (req.readyState </span><span style="COLOR: #000000">==</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">4</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">/*</span><span style="COLOR: #000000">完成</span><span style="COLOR: #000000">*/</span><span style="COLOR: #000000">) {</span><span style="COLOR: #000000">//</span><span style="COLOR: #000000">用第一个街道地址更新表单中的地址域var addrField </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> document.getElementById(</span><span style="COLOR: #008000">'</span><span style="COLOR: #008000">addr');</span><span style="COLOR: #008000"><br /><img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">var root </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> req.responseXML;<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" />var addrsElem </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> root.getElementsByTagName(</span><span style="COLOR: #008000">'</span><span style="COLOR: #008000">addresses')[0];</span><span style="COLOR: #008000"><br /><img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">var firstAddr </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> addrsElem.getElementsByTagName(</span><span style="COLOR: #008000">'</span><span style="COLOR: #008000">address')[0];</span><span style="COLOR: #008000"><br /><img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">var addrText </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> fistAddr.firstChild;<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" />var addrValue </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> addrText.nodeValue;addrField.value </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> addrValue;}}</span></span></div><br /><p>注意，你不必自己分析XML文档，分析任务可以由XMLHttpRequest对象为你自动完成。之后，这个XMLHttpRequest对象使得由分析生成的DOM树可应用于responseXML属性中。然后，你可以借助这个responseXML属性并调用getElementsByTagName方法来查找文档中的addresses部分，但仅能使用找到的第一个（其实只有一个）。然后，你再次在找到的address上调用getElementsByTagName方法来查找下一层中的第一个address元素，然后再次使用找到的第一个address……然后，你得到该元素的第一个DOM子结点（它是一个文本结点）并得到该结点的值（它正是你想找的街道地址）。最后，你就可以在表单域中显示它。</p><p>显然，这是一项工作量很大的工作！现在，让我们试用一下JSON：<br /></p><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000"> myHandler() {<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> (req.readyState </span><span style="COLOR: #000000">==</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">4</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">/*</span><span style="COLOR: #000000">complete</span><span style="COLOR: #000000">*/</span><span style="COLOR: #000000">) {<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" />var addrField </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> document.getElementById(</span><span style="COLOR: #008000">'</span><span style="COLOR: #008000">addr');</span><span style="COLOR: #008000"><br /><img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">var card </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">eval</span><span style="COLOR: #000000">(</span><span style="COLOR: #008000">'</span><span style="COLOR: #008000">(' + req.responseText + ')');</span><span style="COLOR: #008000"><br /><img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">addrField.value </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> card.addresses[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">].value;}}</span></div><p>你需要做的第一件事情是手工地分析JSON响应。然而，因为JSON是JavaScript的一个子集，所以你可以通过调用eval方法使用JavaScript自己的编译器来完成这些。分析JSON是非常简单的！而且，在产生于JSON中的一个对象中导航与在任何JavaScript对象中导航完全一样。这比在DOM树中导航要容易得多。例如：</p><p>•card.addresses[0].value对应第一条街道地址：“1234 Main Stb &amp;”；<br />•card.addresses[0].type对应地址的类型：“work”；<br />•card.addresses[1]对应一个家庭地址对象；<br />•card.fullname对应卡片名：“Sean Kelly”。</p><p>如果仔细观察，那么你可能注意到，示例程序的XML版本至少要处理包含在文档中的一个对象—根文档元素card。这在JSON版本中是不存在的。为什么？如果你曾开发过存取一个Web服务的JavaScript，那么你就会知道你要从Web服务中取回什么。然而，你可以在JSON中包括下面一种更为简练的形式：<br /></p><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">{</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">card</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">: {</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">fullname</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">: <img src="http://www.cnitblog.com/images/dot.gif" />}}</span></div><p>通过使用这一技术，你的JSON文件总是以一个对象开头并且用单个命名的属性来标记该对象的“类型”。</p><p><strong>四、JSON的快速可靠性</strong></p><p>JSON能够生成更小的文档，且其在JavaScript脚本中更易于使用。XMLHttpRequest能够为你自动分析XML文档，然而你必须手工分析JSON。这样以来，你可能质疑：分析JSON是否比分析XML更慢？对比JSON，我针对上面的地址卡测试了嵌入到XMLHttpRequest中的XML分析器—通过把这些数据置入上千次的循环中。最终结果表明，分析JSON比分析XML快大约10倍！如果想实现AJAX程序的行为类似于桌面应用程序，那么速度就是一切。很明显，JSON是胜者。</p><p>当然，你不可能一直控制为你的AJAX应用程序产生数据的服务器端。你可以使用一种第三方服务器来处理你的数据，而且让该服务器仅提供XML输出。然而，如果该服务器中恰巧能够提供JSON支持，那么你能否确定并敢于使用这一支持？</p><p>注意，在上面的示例中，你是直接把响应文本传递到一个对eval的调用中。如果你信任并控制了服务器，这是没有问题的；然而，另外一些情况下，一个恶意的服务器有可能给你的浏览器执行带来危险操作。为此，你最好使用一个用JavaScript编写的JSON分析器。幸好，已经存在可用的分析器了。</p><p>谈到分析器，Python迷们可能还没有注意到，JSON不仅是JavaScript的一个子集，而且它还是Python的一个子集。你可以直接在Python中使用JSON，或利用一种安全的JSON分析器。现在，针对于JSON的分析器也大量地存在于其它语言中；你可以参考JSON.org网站来选择使用相应的分析器。</p><p><strong>五、服务器端技术对JSON的支持</strong></p><p>到目前为止，我们一直集中于讨论如何把JSON应用于客户端浏览器上的基于AJAX技术的Web应用程序。当然，Web服务器端必须存在一定的技术支持才能实现首先生成JSON，然后由客户端使用JSON。幸好，基于现有数据结构创建JSON是一件相当直接的事情。另外，一些Web应用程序框架（例如TurboGears）已经自动包括支持JSON输出。</p><p>另外，商业Web服务供应商也都特别关注JSON。Yahoo最近在其Web服务中大量地加入对JSON的支持。Yahoo的多种搜索服务，旅行规划者，del.icio.us和高速公路交通服务都支持JSON输出。无疑，其它一些主要的Web服务供应商也都会逐渐地提供对JSON的支持。</p><p><strong>六、结论</strong></p><p>JSON的基本思想是，把自己实现为JavaScript（和Python）的一个子集，从而使其成为一种轻量级的和高度灵活的处理AJAX数据交换的方式。与传统的XML处理技术相比，这个工具的分析速度更快且更为易用。从该工具的性能和使用现状来看，它有可能会成为下一代Web 2.0开发中XML数据操作的主要替代者。任何开发者，无论是开发标准桌面应用程序还是开发Web应用程序，只要使用XML数据处理，都会欣赏JSON的简易特征。最后，我衷心祝愿JSON能加快你的基于AJAX技术的Web 2.0应用程序的开发。</p><img src ="http://www.cnitblog.com/myshare/aggbug/16903.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/myshare/" target="_blank">啊啦神灯</a> 2006-09-15 20:20 <a href="http://www.cnitblog.com/myshare/archive/2006/09/15/16903.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ajax一例</title><link>http://www.cnitblog.com/myshare/archive/2006/09/14/16858.html</link><dc:creator>啊啦神灯</dc:creator><author>啊啦神灯</author><pubDate>Thu, 14 Sep 2006 12:29:00 GMT</pubDate><guid>http://www.cnitblog.com/myshare/archive/2006/09/14/16858.html</guid><wfw:comment>http://www.cnitblog.com/myshare/comments/16858.html</wfw:comment><comments>http://www.cnitblog.com/myshare/archive/2006/09/14/16858.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/myshare/comments/commentRss/16858.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/myshare/services/trackbacks/16858.html</trackback:ping><description><![CDATA[
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img id="Code_Closed_Image" onclick="this.style.display='none'; Code_Closed_Text.style.display='none'; Code_Open_Image.style.display='inline'; Code_Open_Text.style.display='inline';" height="16" src="http://www.cnitblog.com/images/OutliningIndicators/ContractedBlock.gif" width="11" align="top" />
				<img id="Code_Open_Image" style="DISPLAY: none" onclick="this.style.display='none'; Code_Open_Text.style.display='none'; Code_Closed_Image.style.display='inline'; Code_Closed_Text.style.display='inline';" height="16" src="http://www.cnitblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" width="11" align="top" />
				<span id="Code_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">代码</span>
				<span id="Code_Open_Text" style="DISPLAY: none">
						<br />
						<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->
						<img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" />
						<span style="COLOR: #000000">&lt;</span>
						<span style="COLOR: #000000">script type</span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">text/javascript</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">&gt;</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" />
						</span>
						<span style="COLOR: #0000ff">var</span>
						<span style="COLOR: #000000"> xmlhttp;<br /><img id="Codehighlighter1_76_237_Open_Image" onclick="this.style.display='none'; Codehighlighter1_76_237_Open_Text.style.display='none'; Codehighlighter1_76_237_Closed_Image.style.display='inline'; Codehighlighter1_76_237_Closed_Text.style.display='inline';" src="http://www.cnitblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_76_237_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_76_237_Closed_Text.style.display='none'; Codehighlighter1_76_237_Open_Image.style.display='inline'; Codehighlighter1_76_237_Open_Text.style.display='inline';" src="http://www.cnitblog.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span>
						<span style="COLOR: #0000ff">function</span>
						<span style="COLOR: #000000"> createxmlhttprequest()</span>
						<span id="Codehighlighter1_76_237_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
								<img src="http://www.cnitblog.com/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_76_237_Open_Text">
								<span style="COLOR: #000000">{<br /><img id="Codehighlighter1_104_160_Open_Image" onclick="this.style.display='none'; Codehighlighter1_104_160_Open_Text.style.display='none'; Codehighlighter1_104_160_Closed_Image.style.display='inline'; Codehighlighter1_104_160_Closed_Text.style.display='inline';" src="http://www.cnitblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_104_160_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_104_160_Closed_Text.style.display='none'; Codehighlighter1_104_160_Open_Image.style.display='inline'; Codehighlighter1_104_160_Open_Text.style.display='inline';" src="http://www.cnitblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />  </span>
								<span style="COLOR: #0000ff">if</span>
								<span style="COLOR: #000000">(window.ActiveXObject)</span>
								<span id="Codehighlighter1_104_160_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
										<img src="http://www.cnitblog.com/images/dot.gif" />
								</span>
								<span id="Codehighlighter1_104_160_Open_Text">
										<span style="COLOR: #000000">{<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/InBlock.gif" align="top" />     xmlhttp</span>
										<span style="COLOR: #000000">=</span>
										<span style="COLOR: #0000ff">new</span>
										<span style="COLOR: #000000"> activexobject(</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">Microsoft.xmlhttp</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">)<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />  }</span>
								</span>
								<span style="COLOR: #000000">
										<br />
										<img id="Codehighlighter1_195_234_Open_Image" onclick="this.style.display='none'; Codehighlighter1_195_234_Open_Text.style.display='none'; Codehighlighter1_195_234_Closed_Image.style.display='inline'; Codehighlighter1_195_234_Closed_Text.style.display='inline';" src="http://www.cnitblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
										<img id="Codehighlighter1_195_234_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_195_234_Closed_Text.style.display='none'; Codehighlighter1_195_234_Open_Image.style.display='inline'; Codehighlighter1_195_234_Open_Text.style.display='inline';" src="http://www.cnitblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />   </span>
								<span style="COLOR: #0000ff">else</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #0000ff">if</span>
								<span style="COLOR: #000000">(window.xmlhttprequest)</span>
								<span id="Codehighlighter1_195_234_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
										<img src="http://www.cnitblog.com/images/dot.gif" />
								</span>
								<span id="Codehighlighter1_195_234_Open_Text">
										<span style="COLOR: #000000">{<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/InBlock.gif" align="top" />     xmlhttp</span>
										<span style="COLOR: #000000">=</span>
										<span style="COLOR: #0000ff">new</span>
										<span style="COLOR: #000000"> xmlhttprequest();<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />  }</span>
								</span>
								<span style="COLOR: #000000"> <br /><img src="http://www.cnitblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" />
								<br />
								<img id="Codehighlighter1_263_357_Open_Image" onclick="this.style.display='none'; Codehighlighter1_263_357_Open_Text.style.display='none'; Codehighlighter1_263_357_Closed_Image.style.display='inline'; Codehighlighter1_263_357_Closed_Text.style.display='inline';" src="http://www.cnitblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" />
								<img id="Codehighlighter1_263_357_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_263_357_Closed_Text.style.display='none'; Codehighlighter1_263_357_Open_Image.style.display='inline'; Codehighlighter1_263_357_Open_Text.style.display='inline';" src="http://www.cnitblog.com/images/OutliningIndicators/ContractedBlock.gif" align="top" />
						</span>
						<span style="COLOR: #0000ff">function</span>
						<span style="COLOR: #000000"> startRequest()</span>
						<span id="Codehighlighter1_263_357_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
								<img src="http://www.cnitblog.com/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_263_357_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/InBlock.gif" align="top" />  createXMLHttpRequest();<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/InBlock.gif" align="top" />  xmlhttp.open(</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">get</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">,</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">innerhtml.xml</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">,</span>
								<span style="COLOR: #0000ff">true</span>
								<span style="COLOR: #000000">);<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/InBlock.gif" align="top" />  xmlhttp.send(</span>
								<span style="COLOR: #0000ff">null</span>
								<span style="COLOR: #000000">);<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" />
								<br />
								<img id="Codehighlighter1_388_546_Open_Image" onclick="this.style.display='none'; Codehighlighter1_388_546_Open_Text.style.display='none'; Codehighlighter1_388_546_Closed_Image.style.display='inline'; Codehighlighter1_388_546_Closed_Text.style.display='inline';" src="http://www.cnitblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" />
								<img id="Codehighlighter1_388_546_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_388_546_Closed_Text.style.display='none'; Codehighlighter1_388_546_Open_Image.style.display='inline'; Codehighlighter1_388_546_Open_Text.style.display='inline';" src="http://www.cnitblog.com/images/OutliningIndicators/ContractedBlock.gif" align="top" />
						</span>
						<span style="COLOR: #0000ff">function</span>
						<span style="COLOR: #000000"> handlestateChange()</span>
						<span id="Codehighlighter1_388_546_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
								<img src="http://www.cnitblog.com/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_388_546_Open_Text">
								<span style="COLOR: #000000">{<br /><img id="Codehighlighter1_419_542_Open_Image" onclick="this.style.display='none'; Codehighlighter1_419_542_Open_Text.style.display='none'; Codehighlighter1_419_542_Closed_Image.style.display='inline'; Codehighlighter1_419_542_Closed_Text.style.display='inline';" src="http://www.cnitblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_419_542_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_419_542_Closed_Text.style.display='none'; Codehighlighter1_419_542_Open_Image.style.display='inline'; Codehighlighter1_419_542_Open_Text.style.display='inline';" src="http://www.cnitblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />  </span>
								<span style="COLOR: #0000ff">if</span>
								<span style="COLOR: #000000">(xmlHttp.readyState </span>
								<span style="COLOR: #000000">==</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #000000">4</span>
								<span style="COLOR: #000000">)</span>
								<span id="Codehighlighter1_419_542_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
										<img src="http://www.cnitblog.com/images/dot.gif" />
								</span>
								<span id="Codehighlighter1_419_542_Open_Text">
										<span style="COLOR: #000000">{<br /><img id="Codehighlighter1_449_535_Open_Image" onclick="this.style.display='none'; Codehighlighter1_449_535_Open_Text.style.display='none'; Codehighlighter1_449_535_Closed_Image.style.display='inline'; Codehighlighter1_449_535_Closed_Text.style.display='inline';" src="http://www.cnitblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_449_535_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_449_535_Closed_Text.style.display='none'; Codehighlighter1_449_535_Open_Image.style.display='inline'; Codehighlighter1_449_535_Open_Text.style.display='inline';" src="http://www.cnitblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />   </span>
										<span style="COLOR: #0000ff">if</span>
										<span style="COLOR: #000000">(xmlhttp.status </span>
										<span style="COLOR: #000000">==</span>
										<span style="COLOR: #000000"> </span>
										<span style="COLOR: #000000">200</span>
										<span style="COLOR: #000000">)</span>
										<span id="Codehighlighter1_449_535_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
												<img src="http://www.cnitblog.com/images/dot.gif" />
										</span>
										<span id="Codehighlighter1_449_535_Open_Text">
												<span style="COLOR: #000000">{<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/InBlock.gif" align="top" />        document.getElementByid(</span>
												<span style="COLOR: #000000">"</span>
												<span style="COLOR: #000000">results</span>
												<span style="COLOR: #000000">"</span>
												<span style="COLOR: #000000">).innerhtml </span>
												<span style="COLOR: #000000">=</span>
												<span style="COLOR: #000000"> xmlhttp.responseText;<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />       }</span>
										</span>
										<span style="COLOR: #000000">
												<br />
												<img src="http://www.cnitblog.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />     }</span>
								</span>
								<span style="COLOR: #000000">
										<br />
										<img src="http://www.cnitblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />  }</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" />
						</span>
						<span style="COLOR: #000000">&lt;/</span>
						<span style="COLOR: #000000">script</span>
						<span style="COLOR: #000000">&gt;</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" />
								<br />
								<img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" />
						</span>
						<span style="COLOR: #000000">&lt;</span>
						<span style="COLOR: #000000">body</span>
						<span style="COLOR: #000000">&gt;</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" />
						</span>
						<span style="COLOR: #000000">&lt;</span>
						<span style="COLOR: #000000">form action</span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">#</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">&gt;</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" />
						</span>
						<span style="COLOR: #000000">&lt;</span>
						<span style="COLOR: #000000">input type</span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">button</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000"> value</span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">search for Today's Activities</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000"> onclick</span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">startReqest();</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">/&gt;</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" />
						</span>
						<span style="COLOR: #000000">&lt;/</span>
						<span style="COLOR: #000000">form</span>
						<span style="COLOR: #000000">&gt;</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" />
						</span>
						<span style="COLOR: #000000">&lt;</span>
						<span style="COLOR: #000000">div id</span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">results</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">&gt;&lt;/</span>
						<span style="COLOR: #000000">div</span>
						<span style="COLOR: #000000">&gt;</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" />
						</span>
						<span style="COLOR: #000000">&lt;/</span>
						<span style="COLOR: #000000">body</span>
						<span style="COLOR: #000000">&gt;</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" />
						</span>
				</span>
		</div>
<img src ="http://www.cnitblog.com/myshare/aggbug/16858.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/myshare/" target="_blank">啊啦神灯</a> 2006-09-14 20:29 <a href="http://www.cnitblog.com/myshare/archive/2006/09/14/16858.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>