日韩精品中文字幕一区二区-日韩精品中文字幕一区-日韩精品中文字幕视频-日韩精品在线一区二区三区-第一页在线-第一福利视频

當前位置: 首頁編程開發Java → 提供大家一些Ajax小技巧

提供大家一些Ajax小技巧

更多

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

使用java script庫

Ajax的流行和巨大威力,讓我們重新審視了java script的開發,也直接促使各種庫的出現。對于普通的開發者,使用一些適合自己的java script庫不僅可以避免Ajax應用上的瀏覽器兼容等問題,也使其開發更加的穩定和高效。這里列一些我知曉的輕量級的java script庫:

  1. YUI:YAHOO出品,組件豐富強大健壯穩定,是團隊協作開發的首選。
  2. JQuery:靈活、高效,其基于CSS3 和XPath的選擇器語法引擎非常的強大和完整。
  3. Prototype:是一個非常優雅的java script庫,最經典的莫過于$符號了,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:
    <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發送請求之前加上:
    XMLHttpRequest.setRequestHeader("If-Modified-Since","0");
    XMLHttpRequest.send(null);

    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非常好的替代品。
熱門評論
最新評論
昵稱:
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
字數: 0/500 (您的評論需要經過審核才能顯示)
主站蜘蛛池模板: 电影宝贝| 美国伦理小樱桃1| 张猛龙魏碑字帖大全| 免税车中企诚谊| 小说改编电视剧| 小娘惹第二部电视剧免费观看| 宋佳风平浪静| 上门女婿电视剧演员| 澳大利亚《囚犯》| 奔跑吧第13季| 美国电影《贵夫人》| 电影潘金莲| 风月变电视剧简介| 尺子1:1原图| 咸猪手| christie stevens| 好男当家 电视剧| 沉默的较量| 致爱丽丝钢琴简谱双手完整版| 1988年英国的白蛇传说| 北京新闻频道回看| 香港九龙图库精选资料| 糟老头视频| 美丽的坏女人中文字幕| 惊悚电影| 巨乳姐妹| 李顺大造屋| 《完美无瑕》莫妮卡贝鲁奇| 李小璐视频| 我的刺猬女孩大结局| 好好的电影| 胎心监护多少周开始做| 孽扣| city of stars歌词| 绝不放弃电影免费观看完整版| 欧美gv网站| 夏天在哪儿仿写句子一年级| 王宝强盲井| 电影《exotica》完整版观看| 康熙微服私访记第二部演员表| 姐妹7完整版|