最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

Ajax的小貼士使用小結(jié)

來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 22:52:37
文檔

Ajax的小貼士使用小結(jié)

Ajax的小貼士使用小結(jié):在使用Ajax過程中,有時候總會遇到一些難題,瀏覽器兼容、編碼、IE下的特殊處理等等,偶爾會搞的人頭昏腦脹哭笑不得,這里列一些小貼士,或許有些用。 使用Javascript庫 Ajax的流行和巨大威力,讓我們重新審視了Javascript的開發(fā),也直接促使各種庫的出現(xiàn)。
推薦度:
導(dǎo)讀Ajax的小貼士使用小結(jié):在使用Ajax過程中,有時候總會遇到一些難題,瀏覽器兼容、編碼、IE下的特殊處理等等,偶爾會搞的人頭昏腦脹哭笑不得,這里列一些小貼士,或許有些用。 使用Javascript庫 Ajax的流行和巨大威力,讓我們重新審視了Javascript的開發(fā),也直接促使各種庫的出現(xiàn)。

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

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

編碼問題 
       通過XMLHttpRequest獲取的數(shù)據(jù),默認(rèn)的字符編碼是UTF-8,如果前端頁面是GB2312或者其它編碼,顯示獲取的數(shù)據(jù)就是亂碼。通過XMLHTTPRequest,POST的數(shù)據(jù)也是UTF-8編碼,如果后臺是GB2312或者其他編碼也會出現(xiàn)亂碼。解決方法: 
1 統(tǒng)一到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服務(wù)器上強(qiáng)制聲明。比如:apache下的配置: 
AddDefaultCharset GB2312
        這種情況主要是應(yīng)對通過XMLHttpRequest訪問的文件是靜態(tài)文件,無法聲明headers的情況下。 
靜態(tài)頁面一般都會經(jīng)過Apache的deflate或gzip壓縮,此時在上面情況下IE中,首次通過XMLhttpRequest獲得的數(shù)據(jù)可以正常顯示,但再獲取數(shù)據(jù)顯示時出現(xiàn)亂碼,這次因為再次獲取的數(shù)據(jù)來自緩存,可能由于瀏覽器解壓縮的問題導(dǎo)致Apache設(shè)置的默認(rèn)編碼聲明丟失。由于這種情況下一般是純文本,可能還無法禁止緩存,可以設(shè)置XMLhttpRequest訪問的文本文件不壓縮來解決這個問題。 

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

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

1 客戶端通過添加隨機(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"); 

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

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

Ajax的小貼士使用小結(jié)

Ajax的小貼士使用小結(jié):在使用Ajax過程中,有時候總會遇到一些難題,瀏覽器兼容、編碼、IE下的特殊處理等等,偶爾會搞的人頭昏腦脹哭笑不得,這里列一些小貼士,或許有些用。 使用Javascript庫 Ajax的流行和巨大威力,讓我們重新審視了Javascript的開發(fā),也直接促使各種庫的出現(xiàn)。
推薦度:
標(biāo)簽: 使用 心得 總結(jié)
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top