婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > jQuery Ajax使用心得詳細整理及注意事項

jQuery Ajax使用心得詳細整理及注意事項

熱門標簽:接聽電話機器人哪有 廣西ai語音電銷機器人哪家好 辦理一個400電話多少錢 察縣地圖標注 信貸電銷機器人有用嗎 如何用地圖標注各分公司 莆田防封電銷卡價格 蓄意標記地圖標注 電銷機器人適用范圍
IE7及以下請求方式用GET的話,URL的限制是個很容易忽視的問題(最大2083個字符)。所以如果URL有可能過長的話,一定要用POST。
--------------------------------------------------------------------------------
終止Ajax請求
終止請求需要調用XMLHttpRequest對象的abort()方法
而在jQuery中的$.get,$.post、$.ajax、$.getJSON、$.getScript...的返回值都是XMLHttpRequest對象.
調用abort()后,ajax請求立即停止,但仍然會執行success的回調函數
所以在success的回調函數中需要先判斷 ajaxGet 或 data是否存在,存在才執行回調函數
復制代碼 代碼如下:

var ajaxGet = $.get(someURL,someData,function(data){
if(!data)return true;
//TODO
});
ajaxGet.abort();

說到跨域資源共享(CORS Cross-Origin Resoure Sharing),現在正變的越來越重要。各種地圖API,微博API等等,網站開發人員不必自己去放衛星,只要根據別人開放的接口,就能獲取到這些數據。
這得益于跨源策略。

JSONP就是跨源策略的一種方案。基本原理就是利用瀏覽器允許跨域獲取script資源(包括圖片)的特點,在服務器端生成script Tag,并傳回客戶端。

要注意的是,服務器端返回的不是JSON格式的字符串,而是callbackName+"("+JSON_string+")"也就是JSONP。

這就相當于服務器把一段JS代碼(被賦值的函數)返回瀏覽器,然后立即執行。
所以,在瀏覽器端發送的URL中(以GET的形式),需要把回調函數名傳入。
客戶端:
復制代碼 代碼如下:

function deal(data){
//TODO
}
var s= document.createElement("script")
//不必一定叫callback,但是一定要跟服務器端的Request.QueryString匹配
s.src = "http://172.20.2.60:8088/newwebsite/MyHandler.ashx?callback=func";
document.body.appendChild(s)

服務器端(.Net)
復制代碼 代碼如下:

%@ WebHandler Language="C#" Class="Test" %>
using System;
using System.Web;
public class Test : IHttpHandler {
public void ProcessRequest (HttpContext context) {
context.Response.Charset = "utf-8";
context.Response.ContentType = "text/javascript";
string callback = context.Request.QueryString["callback"];//回調函數名
string json = "{'name':'Ray','msg':'hello world!'}";//JSON格式的字符串
string result = string.Format("{0}({1})", callback, json);
context.Response.Write(result);
context.Response.Flush();
context.Response.End();
}
public bool IsReusable {
get {
return false;
}
}
}

用jQuery的話,URL中就不用加回調函數名了,因為jQuery已經為你代勞了,而這個回調函數就是success。
復制代碼 代碼如下:

$.ajax({
url: "http://172.20.2.60:8088/newwebsite/MyHandler.ashx"
, dataType: "jsonp"
, success: function(data) {
//TODO
}
});

JSONP很強大,但是也有兩個讓人蛋疼的地方,首先是安全性問題。
不管怎么說你都是從別人的地盤倒騰數據,而且內容還是腳本!也就是說如果人家是個壞人,給你點惡意代碼,那就不好辦了。

當然這個問題一般也不會發生。畢竟咱想請求數據的地方都是咱熟悉的要么就是官方的(什么谷歌地圖API,新浪微博API這些顯然不會給你坑)。

另一個問題就鬧心了。瀏覽器端對JSONP的請求是否失敗是無法直接知曉的。就算用jQuery,error也不起作用。就算出錯了try,catch也捕捉不到。

所以暫時知道的只有一種不完美方法,就是設定一個時限,如果超過時限還沒有數據返回,那么就判定error。說不完美是因為,各家的網速是不同的,所以...你懂得。
--------------------------------------------------------------------------------
jQuery中contentType相關
jQuery官網原文
復制代碼 代碼如下:

contentType
Default: 'application/x-www-form-urlencoded; charset=UTF-8'
When sending data to the server, use this content type.
Default is "application/x-www-form-urlencoded; charset=UTF-8", which is fine for most cases.
If you explicitly pass in a content-type to $.ajax(),
then it'll always be sent to the server (even if no data is sent).
If no charset is specified, data will be transmitted to the server using the server's default charset;
you must decode this appropriately on the server side.

通過這段文字我們就可以知道在jQuery ajax中 contentType默認是'application/x-www-form-urlencoded; charset=UTF-8' 當然這是最新版jQuery的。相對于以前版本是有些許變化的。

如果想將一個對象序列化后傳向后臺,可以將contentType設置為'application/json'
您可能感興趣的文章:
  • 全面詳細的jQuery常見開發技巧手冊
  • 60個很實用的jQuery代碼開發技巧收集
  • 30個經典的jQuery代碼開發技巧
  • jQuery常見開發技巧詳細整理
  • Web前端新人筆記之jquery入門心得(新手必看)
  • jquery easyui使用心得
  • 關于jQuery UI 使用心得及技巧
  • php+jquery編碼方面的一些心得(utf-8 gb2312)
  • Jquery ThickBox插件使用心得(不建議使用)
  • 關于Jqzoom的使用心得 jquery放大鏡效果插件
  • jQuery 使用個人心得
  • jQuery 研究心得 取得屬性的值
  • 15個值得開發人員關注的jQuery開發技巧和心得總結【經典收藏】

標簽:鷹潭 阿拉善盟 延邊 益陽 儋州 平涼 張掖 銅陵

巨人網絡通訊聲明:本文標題《jQuery Ajax使用心得詳細整理及注意事項》,本文關鍵詞  jQuery,Ajax,使用,心得,詳細,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《jQuery Ajax使用心得詳細整理及注意事項》相關的同類信息!
  • 本頁收集關于jQuery Ajax使用心得詳細整理及注意事項的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 娱乐| 石渠县| 竹溪县| 怀安县| 扎赉特旗| 隆化县| 商丘市| 伊通| 麦盖提县| 炎陵县| 兴山县| 涿鹿县| 奉新县| 宜兰县| 永和县| 泾阳县| 怀远县| 新泰市| 池州市| 双桥区| 秭归县| 扎囊县| 马山县| 沅江市| 内江市| 交口县| 桃江县| 腾冲县| 富源县| 白沙| 宝鸡市| 大田县| 合水县| 行唐县| 温州市| 莲花县| 巨野县| 互助| 柏乡县| 泊头市| 高碑店市|