Heim  >  Artikel  >  Web-Frontend  >  So schreiben Sie Ajax-Anfragen mit höchster Leistung in jQuery

So schreiben Sie Ajax-Anfragen mit höchster Leistung in jQuery

php中世界最好的语言
php中世界最好的语言Original
2018-03-15 15:05:171070Durchsuche

Dieses Mal werde ich Ihnen zeigen, wie Sie Ajax-Anfragen mit der höchsten Leistung schreiben. Hier sind praktische Fälle.

Vorwort

jQuery ist in der Tat ein sehr gutes, leichtes JS-Framework, das uns dabei helfen kann, JS-Anwendungen schnell zu entwickeln, und das ist bis zu einem gewissen Grad der Fall hat unsere Gewohnheit, JavaScript-Code zu schreiben, verändert.

Kein weiterer Unsinn, kommen wir gleich zur Sache. Die Ajax-Methode von jQuery ist sehr einfach zu verwenden. Möchten Sie bei so einer guten Sache Ihr eigenes Ajax haben? Als nächstes erstellen wir selbst einen einfachen Ajax.

Zuerst benötigen Sie eine Konfigurationsdatei

var api = {
 basePath: 'http://192.168.200.226:58080',
 pathList: [
  {
   name: 'agentHeartBeat',
   path:'/api/csta/agent/heartbeat/{{agentId}}',
   method:'post'
  },
  {
   name: 'setAgentState',
   path: '/api/csta/agent/state',
   method: 'post'
  },
  {
   name: 'getAgents',
   path: '/user/agent/{{query}}',
   method: 'get'
  }
 ]
}
Dann benötigen Sie eine Methode, um daraus eine Schnittstelle zu generieren Konfigurationsdatei

function WellApi(Config){
var headers = {};
var Api = function(){};
Api.pt = Api.prototype;
var util = {
 ajax: function(url, method, payload) {
  return $.ajax({
   url: url,
   type: method || "get",
   data: JSON.stringify(payload),
   headers: headers,
   dataType: "json",
   contentType: 'application/json; charset=UTF-8'
  });
 },
 /**
  * [render 模板渲染]
  * 主要用于将 /users/{{userId}} 和{userId: '89898'}转换成/users/89898,和mastache语法差不多,
  * 当然我们没必要为了这么小的一个功能来引入一个模板库
  * query字符串可以当做一个参数传递进来
  * 例如: /users/{{query}}和{query:'?name=jisika&sex=1'}
  * @Author Wdd
  * @DateTime 2017-03-13T19:42:58+0800
  * @param {[type]} tpl [description]
  * @param {[type]} data [description]
  * @return {[type]} [description]
  */
 render: function(tpl, data){
  var re = /{{([^}]+)?}}/;
  var match = '';
  while(match = re.exec(tpl)){
   tpl = tpl.replace(match[0],data[match[1]]);
  }
  return tpl;
 }
};
/**
 * [setHeader 暴露设置头部信息的方法]
 * 有些方法需要特定的头部信息,例如登录之后才能获取sesssionId,然后访问所有的接口时,必须携带sessionId
 * 才可以访问
 * @Author Wdd
 * @DateTime 2017-03-13T10:34:03+0800
 * @param {[type]} headers [description]
 */
Api.pt.setHeader = function(headers){
 headers = headers;
};
/**
 * [fire 发送ajax请求,this会绑定到每个接口上]
 * @Author Wdd
 * @DateTime 2017-03-13T19:42:13+0800
 * @param {[type]} pathParm [description]
 * @param {[type]} payload [description]
 * @return {[type]} [description]
 */
function fire(pathParm, payload){
 var url = util.render(this.path, pathParm);
 return util.ajax(url, this.method, payload);
}
/**
 * [for 遍历所有接口]
 * @Author Wdd
 * @DateTime 2017-03-13T19:49:33+0800
 * @param {[type]} var i [description]
 * @return {[type]} [description]
 */
for(var i=0; i < Config.pathList.length; i++){
 Api.pt[Config.pathList[i].name] = {
  path: Config.basePath + Config.pathList[i].path,
  method: Config.pathList[i].method,
  fire: fire
 };
}
return new Api();
}

Probieren Sie es aus

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title></title>
  <script src="http://cdn.bootcss.com/jquery/1.11.3/jquery.min.js"></script>
  <script src="api.js"></script>
  <script src="jquery-ajax.js"></script>
</head>
<body>
<script type="text/javascript">
  var saas = WellApi(api);
  saas.agentHeartBeat.fire({agentId: '5001@1011.cc'})
  .done(function(res){
    console.log('心跳成功');
  })
  .fail(function(res){
    console.log('心跳失败');
  });
</script>
</body>
</html>

Vorteile und Erweiterungen

[Vorteile]: Rückrufmethode ähnlich dem Versprechen

[Vorteile]: Das Hinzufügen einer Schnittstelle erfordert nur das Hinzufügen einer Konfigurationsdatei, was sehr praktisch ist

[Erweiterung]: I Ich benötige nur den Inhaltstyp des aktuellen Ajax, den ich in JSON geschrieben habe. Wenn Sie interessiert sind, können Sie andere

Datentypen

erweitern. [Nachteile]: Es gibt keine Überprüfung der

Funktionsparameter

Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf PHP Chinesische Website!

Empfohlene Lektüre:

Wie zwei zTree miteinander interagieren

Wie man Webpack zum Schreiben der JQuery-Umgebungskonfiguration verwendet

So konvertieren Sie automatisch Groß- und Kleinbuchstaben, wenn Jackson JSON-Strings analysiert

Verwendung des jQuery EasyUI-Faltpanels

Das obige ist der detaillierte Inhalt vonSo schreiben Sie Ajax-Anfragen mit höchster Leistung in jQuery. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn