﻿<?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>BlogJava-Save Me From Myself-随笔分类-Ajax</title><link>http://www.blogjava.net/wawlian/category/48046.html</link><description /><language>zh-cn</language><lastBuildDate>Mon, 14 Mar 2011 11:14:38 GMT</lastBuildDate><pubDate>Mon, 14 Mar 2011 11:14:38 GMT</pubDate><ttl>60</ttl><item><title>Ajax笔记</title><link>http://www.blogjava.net/wawlian/archive/2011/03/14/346248.html</link><dc:creator>一个人跳舞</dc:creator><author>一个人跳舞</author><pubDate>Mon, 14 Mar 2011 07:36:00 GMT</pubDate><guid>http://www.blogjava.net/wawlian/archive/2011/03/14/346248.html</guid><wfw:comment>http://www.blogjava.net/wawlian/comments/346248.html</wfw:comment><comments>http://www.blogjava.net/wawlian/archive/2011/03/14/346248.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wawlian/comments/commentRss/346248.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wawlian/services/trackbacks/346248.html</trackback:ping><description><![CDATA[<p>XMLHttpRequest的readyState：</p>
<p>0：未初始化——创建</p>
<p>1：初始化——open</p>
<p>2：发送请求——send</p>
<p>3：开始接受结果</p>
<p>4：接收结果完毕</p>
<p>状态每改变一次，调用一次回调函数。方法调用5次，但是前两次的readyState==1</p>
<p>&nbsp;</p>
<p>onreadystatechange = callback</p>
<p>绑定回调函数，不加()。</p>
<p>&nbsp;</p>
<p>XMLHttpRequest的status：</p>
<p>200 OK</p>
<p>404 Not Found</p>
<p>500 Serevr Error</p>
<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080; ">&nbsp;1</span>&nbsp;<span style="color: #0000FF; ">var</span><span style="color: #000000; ">&nbsp;xmlHttpRequest;<br />
</span><span style="color: #008080; ">&nbsp;2</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080; ">&nbsp;3</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">创建XMLHttpRequest对象</span><span style="color: #008000; "><br />
</span><span style="color: #008080; ">&nbsp;4</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">function</span><span style="color: #000000; ">&nbsp;createXmlHttpRequest()&nbsp;{<br />
</span><span style="color: #008080; ">&nbsp;5</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">var</span><span style="color: #000000; ">&nbsp;xmlHttp;<br />
</span><span style="color: #008080; ">&nbsp;6</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(window.ActiveXObject)&nbsp;{<br />
</span><span style="color: #008080; ">&nbsp;7</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">try</span><span style="color: #000000; ">&nbsp;{<br />
</span><span style="color: #008080; ">&nbsp;8</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlHttp&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;ActiveXObject(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">Microsoft.XMLHTTP</span><span style="color: #000000; ">"</span><span style="color: #000000; ">)<br />
</span><span style="color: #008080; ">&nbsp;9</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000FF; ">catch</span><span style="color: #000000; ">&nbsp;(e)&nbsp;{<br />
</span><span style="color: #008080; ">10</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlHttp&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;ActiveXObject(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">Msxml2.XMLHTTP</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />
</span><span style="color: #008080; ">11</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080; ">12</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="color: #0000FF; ">else</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(window.XMLHttpRequest)&nbsp;{<br />
</span><span style="color: #008080; ">13</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlHttp&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;XMLHttpRequest()<br />
</span><span style="color: #008080; ">14</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080; ">15</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080; ">16</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;xmlHttp;<br />
</span><span style="color: #008080; ">17</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080; ">18</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080; ">19</span>&nbsp;<span style="color: #000000; "><br />
</span><span style="color: #008080; ">20</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">function</span><span style="color: #000000; ">&nbsp;checkExist()&nbsp;{<br />
</span><span style="color: #008080; ">21</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlHttpRequest&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;createXmlHttpRequest();<br />
</span><span style="color: #008080; ">22</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlHttpRequest.onreadystatechange&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;callBack;<br />
</span><span style="color: #008080; ">23</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080; ">24</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">var</span><span style="color: #000000; ">&nbsp;url&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">http://localhost:8080/Ajax/CheckUser?uname=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">+</span><span style="color: #000000; ">document.getElementById(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">userName</span><span style="color: #000000; ">"</span><span style="color: #000000; ">).value;<br />
</span><span style="color: #008080; ">25</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080; ">26</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlHttpRequest.open(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">GET</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,&nbsp;url,&nbsp;</span><span style="color: #0000FF; ">true</span><span style="color: #000000; ">);<br />
</span><span style="color: #008080; ">27</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlHttpRequest.send(</span><span style="color: #0000FF; ">null</span><span style="color: #000000; ">);<br />
</span><span style="color: #008080; ">28</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080; ">29</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080; ">30</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">function</span><span style="color: #000000; ">&nbsp;callBack()&nbsp;{<br />
</span><span style="color: #008080; ">31</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(xmlHttpRequest.readyState</span><span style="color: #000000; ">==</span><span style="color: #000000; ">4</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">&nbsp;xmlHttpRequest.status</span><span style="color: #000000; ">==</span><span style="color: #000000; ">200</span><span style="color: #000000; ">)&nbsp;{<br />
</span><span style="color: #008080; ">32</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">var</span><span style="color: #000000; ">&nbsp;result&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;xmlHttpRequest.responseText;<br />
</span><span style="color: #008080; ">33</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; "><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span style="color: #008000; "><br />
</span><span style="color: #008080; ">34</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080; ">35</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}</span></div>
<img src ="http://www.blogjava.net/wawlian/aggbug/346248.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wawlian/" target="_blank">一个人跳舞</a> 2011-03-14 15:36 <a href="http://www.blogjava.net/wawlian/archive/2011/03/14/346248.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ajax缓存处理(转)</title><link>http://www.blogjava.net/wawlian/archive/2011/03/14/346247.html</link><dc:creator>一个人跳舞</dc:creator><author>一个人跳舞</author><pubDate>Mon, 14 Mar 2011 07:34:00 GMT</pubDate><guid>http://www.blogjava.net/wawlian/archive/2011/03/14/346247.html</guid><wfw:comment>http://www.blogjava.net/wawlian/comments/346247.html</wfw:comment><comments>http://www.blogjava.net/wawlian/archive/2011/03/14/346247.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wawlian/comments/commentRss/346247.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wawlian/services/trackbacks/346247.html</trackback:ping><description><![CDATA[<div class="blog_content">
<p>Ajax中请求被缓存的问题
<br />
<br />
在Ajax开发中，会遇到浏览器缓存内容的问题，比如，某个元素注册了鼠标事件（onmouseover），事件触发后会通过
xmlhttprequest到服务器获取内容，在不刷新页面的情况下，浏览器会缓存第一次请求的内容，服务端更新后浏览器仍然显示第一次的内容。
<br />
<br />
通常，这种请求都是xmlhttprequest发起的GET请求。根据 HTTP 规范，GET
用于信息获取，而且应该是幂等的。也就是说，当使用相同的URL重复GET请求会返回预期的相同结果时，GET方法才是适用的。当对一个请求有副作用的时候（例如，提交数据注册新用户时），应该使用POST请求而不是GET。所以浏览器会对GET请求做缓存处理。
<br />
<br />
解决办法： <br />
<br />
一. GET请求URL后附加字串，让服务器认为不是相同的请求。 <br />
<br />
例
"http://www.example.com/index.php?class=aitcle&amp;page=5&amp;_t=" + new
Date().getTime() <br />
<br />
二. 在ajax发送请求前加上
xmlHttpRequest.setRequestHeader("If-Modified-Since","0") <br />
<br />
三. 在ajax发送请求前加上
xmlHttpRequest.setRequestHeader("Cache-Control","no-cache"); <br />
<br />
四.
服务端响应请求时加 header("Cache-Control: no-cache, must-revalidate"); （PHP） <br />
<br />
五.
使用POST代替GET，浏览器不会对POST做缓存</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>转自 http://yanglei008.javaeye.com/blog/222401</p>
</div>
<img src ="http://www.blogjava.net/wawlian/aggbug/346247.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wawlian/" target="_blank">一个人跳舞</a> 2011-03-14 15:34 <a href="http://www.blogjava.net/wawlian/archive/2011/03/14/346247.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>