国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > AJAX > 正文

總結Ajax的小貼士使用技巧

2024-09-01 08:30:17
字體:
來源:轉載
供稿:網友

在使用Ajax過程中,有時候總會遇到一些難題,瀏覽器兼容、編碼、IE下的特殊處理等等,偶爾會搞的人頭昏腦脹哭笑不得,這里錯新技術小編總結Ajax的小貼士使用技巧,或許有些用。,一起看看。

使用Javascript庫?
???????Ajax的流行和巨大威力,讓我們重新審視了Javascript的開發,也直接促使各種庫的出現。對于普通的開發者,使用一些適合自己的Javascript庫不僅可以避免Ajax應用上的瀏覽器兼容等問題,也使其開發更加的穩定和高效。這里列一些我知曉的輕量級的Javascript庫:?
1?YUI:YAHOO出品,組件豐富強大健壯穩定,是團隊協作開發的首選。?
2?JQuery:靈活、高效,其基于CSS3?和XPath的選擇器語法引擎非常的強大和完整。?
3?Prototype:是一個非常優雅的Javascript庫,最經典的莫過于$符號了,DWR,JQuery都被它吸引了。在它基礎上出現了script.aculo.us。?
4?Mootools:核心語法和Prototype比較類似,但是用過之后才知道什么叫簡單輕巧和短小精悍。?

編碼問題?
???????通過XMLHttpRequest獲取的數據,默認的字符編碼是UTF-8,如果前端頁面是GB2312或者其它編碼,顯示獲取的數據就是亂碼。通過XMLHTTPRequest,POST的數據也是UTF-8編碼,如果后臺是GB2312或者其他編碼也會出現亂碼。解決方法:?
1?統一到UTF-8。這也是國際化的必然趨勢。?
2?輸出通過XMLHttpRequest獲取的文本文本時,在headers中增加文本聲明(直接HTML聲明沒有作用)。如:?
PHP:header('Content-Type:text/html;charset=GB2312');?
ASP:Response.Charset?=?"GB2312"?
JSP:response.setHeader("Charset","GB2312");?
3?WWW服務器上強制聲明。比如:apache下的配置:?
AddDefaultCharset?GB2312
????????這種情況主要是應對通過XMLHttpRequest訪問的文件是靜態文件,無法聲明headers的情況下。?
靜態頁面一般都會經過Apache的deflate或gzip壓縮,此時在上面情況下IE中,首次通過XMLhttpRequest獲得的數據可以正常顯示,但再獲取數據顯示時出現亂碼,這次因為再次獲取的數據來自緩存,可能由于瀏覽器解壓縮的問題導致Apache設置的默認編碼聲明丟失。由于這種情況下一般是純文本,可能還無法禁止緩存,可以設置XMLhttpRequest訪問的文本文件不壓縮來解決這個問題。?

4?非UTF-8頁面通過XMLHttpRequest獲取的文本文本輸出前字符轉碼成unicode,或者編碼直接是UTF-8,可以正常顯示。如實例所示。

IE下的緩存問題?
由于IE的緩存處理機制問題,每次通過XMLHttpRequest訪問動態頁面返回的總是首次訪問的內容,解決方法有:?

1?客戶端通過添加隨機字符串解決。如:?

復制代碼 代碼如下:

var?url?=?'http://dancewithnet.com/';??
url?+=?'?temp='?+?new?Date().getTime();??
url?+=?'?temp='?+?Math.random();?


2?在HTTP?headers禁止緩存。如:
HTTP:?

?

復制代碼 代碼如下:

?


??
??
??
??


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");?


IE下的reponseXML問題?
使用responseXML時,IE下只能接受.xml為后綴的XML文件,如果不能以.xml文件為結尾的,則需要如下處理:?
1?在服務器端聲明是xml文件類型。如:?
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應用上,JSON和JsonML是XML非常好的替代品。

總結Ajax的小貼士使用技巧就為大家介紹到這里,更多相關內容,請關注錯新技術頻道。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 巴楚县| 监利县| 张家口市| 新津县| 金坛市| 尖扎县| 江北区| 韶关市| 郧西县| 泾源县| 东源县| 罗定市| 富民县| 尼玛县| 永善县| 甘洛县| 筠连县| 乌鲁木齐县| 长泰县| 柏乡县| 临洮县| 临海市| 微博| 晋州市| 泸溪县| 肃南| 瓦房店市| 乃东县| 龙州县| 遂宁市| 伊吾县| 青河县| 永泰县| 玉环县| 邻水| 文安县| 南皮县| 临沂市| 百色市| 金湖县| 雷波县|