1. /**
  2. * 该ajax为ajax的先驱版,当页面的首屏显示时间不达标时可以用此ajax优化,这样的效果是加快首屏数据的渲染,避免cmp.ready后才发送请求,导致页面渲染很慢,具体优化办法如下<br>
  3. * <ul>
  4. * <li>在页面提前导入该ajax资源</li>
  5. * <li>紧接着发送首屏需要的第一个ajax请求</li>
  6. * <li>该组件有一个特别重要的标识cmpReady2Fire,设置为true,则会防护,该ajax请求回来的数据如果先于cmp.ready则返回的数据不会<br>
  7. * 马上执行,会放在cmp.ready之后执行回调函数,避免了cmp.ready之前操作dom造成的错误;<br>
  8. * 如果设置成false,则返回的数据无论是否cmp.ready,都会立即执行回调函数</li>
  9. * <li>调用该ajax发送请求,必须设置fastAjax参数为true,用于区分和其他正常ajax调用的区别</li>
  10. * <li>该组件的调用除了上述四点,无其他异于正常调用ajax的操作</li>
  11. * <li style="color:red;">注:如果页面的渲染数据和数据量是达标的,不用使用此组件进行优化</li>
  12. * </ul>
  13. * <br>
  14. <strong>
  15. * 页面需要导入的文件
  16. * <ul>
  17. * <li>cmp-ajax-fast.js</li>
  18. * </ul>
  19. * </strong>
  20. *
  21. * @module Ajax-fast
  22. * @subtitle 快速ajax
  23. */
  24.  
  25. /**
  26. * 快速ajax
  27. * @namespace cmp
  28. * @class ajax_
  29. * @constructor
  30. * @param {Object} options 配置参数
  31. * @param {String} options.type ajax请求类型,"GET"或者"POST",默认get
  32. * @param {String/Object} [options.data] 请求参数,接受字符串,或者formData
  33. * @param {String} options.url 请求地址
  34. * @param {Object} [options.headers] 请求header
  35. * @param {String} [options.dataType] 参数类型 默认json,接受formData
  36. * @param {Number} [options.timeout] 请求超时设置,默认60000(单位:毫秒)
  37. * @param {Function} [options.success] 请求成功回调
  38. * @param {Function} [options.error] 请求失败回调
  39. * @param {Boolean} options.cmpReady2Fire 是否是在cmp.ready后再执行ajax的回调函数
  40. * @param {Boolean} options.fastAjax 标识该ajax是否是fastAjax 必须设置成true
  41. *
  42. * @example
  43. * ```
  44. * 文件导入路径:
  45. * M3App端
  46. * <script src="http://cmp/v/js/cmp-ajax-fast"></script><!--注意此文件的导入顺序-->
  47. * <script src="http://cmp/v1.0.0/js/cordova/__CMPSHELL_PLATFORM__/cordova.js"></script>
  48. * <script src="http://cmp/v1.0.0/js/cordova/cordova-plugins.js"></script>
  49. * <script src="http://cmp/v/js/cmp.js"></script>
  50. * ===========================================================================================
  51. * 微协同端:
  52. * <script src="/seeyon/m3/cmp/js/cmp-ajax-fast"></script><!--注意此文件的导入顺序-->
  53. * <script src="/seeyon/m3/cmp/js/cmp.js"></script>
  54. * =========================================================================================
  55. * 调用组件
  56. * <script>
  57. * cmp.ajax({
  58. * type:"POST",
  59. * data:JSON.stringify({"name":"x","sex":"nan"}),
  60. * url:cmp.seeyonbasepath + '/rest/collaboration/getAll',//url的拼接 A8的域名 + rest + 应用模块名 + 具体接口名
  61. * dataType:"json",
  62. * timeout:"60000",
  63. * cmpReady2Fire:true,
  64. * fastAjax:true,
  65. * headers:{
  66. * 'Content-Type': 'application/json; charset=utf-8',
  67. * 'Accept-Language' : "zh-CN",
  68. * 'option.n_a_s' : '1'
  69. * },
  70. * dataType:"json",
  71. * success:function(result){
  72. * //do something with success result;
  73. * },
  74. * error:function(error){
  75. * if(!cmp.errorHandler(error)){ //先调用平台的错误统一处理机制
  76. * //如果平台的统一处理机制处理不了,则自己写业务逻辑
  77. * var code = error.code;
  78. * if(code==500){
  79. * //根据code值做自己的业务逻辑
  80. * }
  81. * }
  82. * }
  83. * });
  84. * </script>
  85. * ```
  86. */
Top