变态重口极致另类在线-波多久久夜色精品国产-波多野结衣在线观看一区-波多野结衣在线观看一区二区-污污的网站免费阅读-污污视频网址

當(dāng)前位置: 首頁(yè)編程開(kāi)發(fā)Java → 提供大家一些Ajax小技巧

提供大家一些Ajax小技巧

更多

這篇文章提供分享的是關(guān)于Ajax的一些小技巧,希望在你使用Ajax過(guò)程中碰到難題時(shí),下面這些小貼士能助你一臂之力。

使用java script庫(kù)

Ajax的流行和巨大威力,讓我們重新審視了java script的開(kāi)發(fā),也直接促使各種庫(kù)的出現(xiàn)。對(duì)于普通的開(kāi)發(fā)者,使用一些適合自己的java script庫(kù)不僅可以避免Ajax應(yīng)用上的瀏覽器兼容等問(wèn)題,也使其開(kāi)發(fā)更加的穩(wěn)定和高效。這里列一些我知曉的輕量級(jí)的java script庫(kù):

  1. YUI:YAHOO出品,組件豐富強(qiáng)大健壯穩(wěn)定,是團(tuán)隊(duì)協(xié)作開(kāi)發(fā)的首選。
  2. JQuery:靈活、高效,其基于CSS3 和XPath的選擇器語(yǔ)法引擎非常的強(qiáng)大和完整。
  3. Prototype:是一個(gè)非常優(yōu)雅的java script庫(kù),最經(jīng)典的莫過(guò)于$符號(hào)了,DWR,JQuery都被它吸引了。在它基礎(chǔ)上出現(xiàn)了script.aculo.us。
  4. Mootools:核心語(yǔ)法和Prototype比較類(lèi)似,但是用過(guò)之后才知道什么叫簡(jiǎn)單輕巧和短小精悍。

編碼問(wèn)題

通過(guò)XMLHttpRequest獲取的數(shù)據(jù),默認(rèn)的字符編碼是UTF-8,如果前端頁(yè)面是GB2312或者其它編碼,顯示獲取的數(shù)據(jù)就是亂碼。通過(guò)XMLHTTPRequest,POST的數(shù)據(jù)也是UTF-8編碼,如果后臺(tái)是GB2312或者其他編碼也會(huì)出現(xiàn)亂碼。解決方法:

  1. 統(tǒng)一到UTF-8。這也是國(guó)際化的必然趨勢(shì)。
  2. 輸出通過(guò)XMLHttpRequest獲取的文本文本時(shí),在headers中增加文本聲明(直接HTML聲明沒(méi)有作用)。如:
    PHP:header('Content-Type:text/html;charset=GB2312');
    ASP:Response.Charset = "GB2312"
    JSP:response.setHeader("Charset","GB2312");
  3. WWW服務(wù)器上強(qiáng)制聲明。比如:apache下的配置:
    AddDefaultCharset GB2312

    這種情況主要是應(yīng)對(duì)通過(guò)XMLHttpRequest訪(fǎng)問(wèn)的文件是靜態(tài)文件,無(wú)法聲明headers的情況下。
    靜態(tài)頁(yè)面一般都會(huì)經(jīng)過(guò)Apache的deflate或gzip壓縮,此時(shí)在上面情況下IE中,首次通過(guò)XMLhttpRequest獲得的數(shù)據(jù)可以正常顯示,但再獲取數(shù)據(jù)顯示時(shí)出現(xiàn)亂碼,這次因?yàn)樵俅潍@取的數(shù)據(jù)來(lái)自緩存,可能由于瀏覽器解壓縮的問(wèn)題導(dǎo)致Apache設(shè)置的默認(rèn)編碼聲明丟失。由于這種情況下一般是純文本,可能還無(wú)法禁止緩存,可以設(shè)置XMLhttpRequest訪(fǎng)問(wèn)的文本文件不壓縮來(lái)解決這個(gè)問(wèn)題。
  4. 非UTF-8頁(yè)面通過(guò)XMLHttpRequest獲取的文本文本輸出前字符轉(zhuǎn)碼成unicode,或者編碼直接是UTF-8,可以正常顯示。

IE下的緩存問(wèn)題

由于IE的緩存處理機(jī)制問(wèn)題,每次通過(guò)XMLHttpRequest訪(fǎng)問(wèn)動(dòng)態(tài)頁(yè)面返回的總是首次訪(fǎng)問(wèn)的內(nèi)容,解決方法有:

  1. 客戶(hù)端通過(guò)添加隨機(jī)字符串解決。如:
    var url = 'http://dancewithnet.com/';
    url +=  '?temp=' + new Date().getTime();
    url +=  '?temp=' + Math.random();


  2. 在HTTP headers禁止緩存。如: 
    HTTP:
    <meta http-equiv="pragma" content="no-cache" />
    <meta http-equiv="Cache-Control" content="no-cache, must-revalidate" />
    <meta http-equiv="expires" content="Thu, 01 Jan 1970 00:00:01 GMT" />
    <meta http-equiv="expires" content="0" />
    PHP:
    header("Expires: Thu, 01 Jan 1970 00:00:01 GMT");
    header("Cache-Control: no-cache, must-revalidate");
    header("Pragma: no-cache");
    ASP:
    Response.expires=0
    Response.addHeader("pragma","no-cache")
    Response.addHeader("Cache-Control","no-cache, must-revalidate")
    JSP:
    response.addHeader("Cache-Control", "no-cache");
    response.addHeader("Expires", "Thu, 01 Jan 1970 00:00:01 GMT");

  3. 在XMLHttpRequest發(fā)送請(qǐng)求之前加上:
    XMLHttpRequest.setRequestHeader("If-Modified-Since","0");
    XMLHttpRequest.send(null);

    IE下的reponseXML問(wèn)題

使用responseXML時(shí),IE下只能接受.xml為后綴的XML文件,如果不能以.xml文件為結(jié)尾的,則需要如下處理:

  1. 在服務(wù)器端聲明是xml文件類(lèi)型。如:
    PHP:header("Content-Type:text/xml;charset=utf-8");
    ASP:Response.ContentType = "text/xml";
    JSP:response.setHeader("ContentType","text/xml");

     
  2. 利用responseText獲取,然后封裝成XML。
  3. 在AJAX應(yīng)用上,JSON和JsonML是XML非常好的替代品。
熱門(mén)評(píng)論
最新評(píng)論
發(fā)表評(píng)論 查看所有評(píng)論(3)
昵稱(chēng):
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過(guò)審核才能顯示)
主站蜘蛛池模板: 久久久久久久国产a∨ | 女女同性一区二区三区四区 | 免费永久在线观看污污的网站 | 国产精品一区视频 | 一级女性生活片 | 香蕉视频精品 | 波多野结衣在线一区二区 | 精品国产自在现线看久久 | 色迷迷网免费站视频在线观看 | 成年人深夜福利 | 欧美黄色一级在线 | 特级aaa片毛片免费观看 | 中文字幕第12页 | 一级一级一级毛片 | 亚洲国产欧美精品 | 欧美成年人网站 | 日韩在线观看视频黄 | 狠狠色丁香久久婷婷综合_中 | 日韩一级生活片 | 成人精品视频在线观看播放 | 国内精品一区二区三区 | 日韩在线综合 | 亚洲欧美高清在线 | 国产91久久最新观看地址 | 91精品成人免费国产 | 欧美亚洲国产片在线观看 | 最刺激黄a大片免费网站 | 无遮羞禁黄动漫在线观看 | 黄色一级毛片免费看 | 国产欧美日韩在线不卡第一页 | 综合激情区视频一区视频二区 | 大陆一级黄色片 | 高清欧美在线三级视频 | 午夜影院操 | 成人高清免费 | 欧美精品一区二区三区在线播放 | 日韩中文字幕一区 | 成年女人毛片免费视频 | 麻豆成人传媒一区二区 | 日本免费一级视频 | 亚洲专区区免费 |