jquery ajax属性async(同步异步) |
您所在的位置:网站首页 › ajax的默认请求方式 › jquery ajax属性async(同步异步) |
在jquery的ajax中如果我们希望实现同步或者异步时我们可以直接设置async属性为false和true 同步执行当把async设为false时,这时ajax的请求时同步的 也就是说,这个时候ajax块发出请求后,他会等待在load()这个地方,不会去执行after() 直到load()部分执行完毕 前台 function load(msg) { console.log(msg); } function after(){ console.log('after'); } $.ajax({ url: '/ajax', method: 'GET', async: false }).success(function(result){ load(result); }); after(); 后台 var http = require('http'); var fs = require('fs'); http.createServer(function(req,res){ if(req.url == '/sync'){ fs.createReadStream('sync.html').pipe(res); }else if(req.url == '/ajax'){ setTimeout(function(){ res.end('ok'); },5000); }else{ res.end('Not Found'); } }).listen(8080); 异步执行在这里,async默认的设置值为true,这种情况为异步方式 就是说当ajax发送请求后,在等待server端返回的这个过程中,前台会继续执行ajax块后面的脚本,直到server端返回正确的结果才会去执行success 也就是说这时候执行的是两个线程,ajax块发出请求后一个线程和ajax块后面的脚本(另一个线程) 前台 function load(msg) { console.log(msg); } function after(){ console.log('after'); } $.ajax({ url: '/ajax', method: 'GET', async: true }).success(function(result){ load(result); }); after(); 后台 var http = require('http'); var fs = require('fs'); http.createServer(function(req,res){ if(req.url == '/sync'){ fs.createReadStream('sync.html').pipe(res); }else if(req.url == '/async'){ fs.createReadStream('async.html').pipe(res); } else if(req.url == '/ajax'){ setTimeout(function(){ res.end('ok'); },5000); }else{ res.end('Not Found'); } }).listen(8080); |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |