很多开发者对api.ajax请求效率存在疑问,移动应用开发平台APICloud 为大家提供了较为公正的测试代码,通过api.ajax和标准的XMLHttpRequest请求同一个url进行对比:
1. //当前系统时间戳,毫秒
2. function curtime(){
3. return new Date().getTime();
4. }5. 6. var ajaxurl = 'http://www.w3school.com.cn/ajax/demo_get.asp';7. //api.ajax请求,无跨域问题8. function GetRequest(){9. var starttime = curtime();10. api.ajax({11. url: ajaxurl,12. dataType:'text',13. cache: true14. },function (ret,err) {15. if (ret) {16. alert('用时:' + (curtime() - starttime) + "毫秒\n请求结果:\n" + JSON.stringify(ret));17. } else {18. alert('出错了!\n' + '网络状态码:' + err.statusCode + '\n错误码:' + err.code + '\n错误信息:' + err.msg);19. }20. });21. }22. 23. //标准XMLHttpRequest,可能会有跨域问题24. function GetXmlRequest(){25. var starttime = curtime();26. var xhr = new XMLHttpRequest();27. xhr.onreadystatechange = function(){28. if(xhr.readyState == 4){29. if(xhr.status == 200){30. alert('用时:' + (curtime() - starttime) + "毫秒\n请求结果:\n" + xhr.responseText);31. }else{32. alert('请求失败:\n状态码:' + xhr.status + "\n结果:" + xhr.responseText);33. }34. }35. }36. xhr.open('GET',ajaxurl,true);37. xhr.send(null);38. }
复制代码
通过弹出的对话框可以很明显的看出,在同样网络环境下,两者并无差别,在许多内部业务的服务器场景下,api.ajax甚至更快。上述代码由移动应用开发平台APICloud开发者“常山赵子云”原创提供,欢迎转载和使用!