背景:在用微信小程序或者php後臺拉取數據的時候,有時候遇到數據過多,拉取時間較長,從而出現服務器超時的問題。
這個時間就用前端調用php的方法。
**^_^**注意點:
- 使用前需要引入jquery.js
- url(必須):發送請求的地址,String類型
- data(可選):發送給後臺的數據,以key/value形式{a:value1,b:value2},即json格式
- callback(可選):請求成功後的回調函數。因此,在後臺的處理中,需要給JSONObject put一個是否成功的值,見下面例子。
- type(可選):即第二個參數data的數據類型。如果有data傳遞給後臺,則需要加上該類型。
- get請求語法:$.get(URL,data,function(data,status,xhr),dataType)
dove.jsvar iinum=0; function postopenid() { $.get('http://dove.io/Home/Index/getnum.html?id='+iinum, { }, function(res) { console.log(res); if(res){ iinum++; postopenid(); console.log(iinum,res) } }, 'json'); } postopenid();
IndexController.class.php
public function getnum(){ header("Access-Control-Allow-Origin: *");//允許所有地址跨域請求 $key1 = $_GET['iinum']; //do something $this->ajaxReturn($list); }
- post請求語法:$.post(URL,data,function(data,status,xhr),dataType)
dove.js
var iinum=0;
var type_Arr = [
['attractions'],
["shops",'event'],
["food_beverages"],
["tour","precincts"]
];
function postTIH() {
// $(selector).post(URL,data,function(data,status,xhr),dataType)
var data = [];
data['type_ar'] = type_Arr[iinum];
data['key1'] = iinum+1;
var type_ar = JSON.stringify(data['type_ar']);
var urlData={'key1': iinum+1,'type_ar':type_ar};
console.log('urlData',urlData);
var url = 'http://dove.io/singapore/index.php/Home/Index/js_TIH_All_List.html';
$.post(url,urlData,function(res) {
console.log('返回',res);
if(res && iinum<=2){
iinum++;
console.log(iinum)
postTIH();
}else{
console.log('end');
$('.tips').html('執行結束..');
}
}, 'json');
}
postTIH();
IndexController.class.php
public function js_TIH_All_List(){
header("Access-Control-Allow-Origin: *");//允許所有地址跨域請求
$key1 = $_POST['key1']; //四個分類1 2 3 4
$type_ar = json_decode($_POST['type_ar'],true);
//do something
$this->ajaxReturn($list);
}