/**
 * 该ajax为ajax的先驱版,当页面的首屏显示时间不达标时可以用此ajax优化,这样的效果是加快首屏数据的渲染,避免cmp.ready后才发送请求,导致页面渲染很慢,具体优化办法如下<br>
 *     <ul>
 *         <li>在页面提前导入该ajax资源</li>
 *         <li>紧接着发送首屏需要的第一个ajax请求</li>
 *         <li>该组件有一个特别重要的标识cmpReady2Fire,设置为true,则会防护,该ajax请求回来的数据如果先于cmp.ready则返回的数据不会<br>
 *             马上执行,会放在cmp.ready之后执行回调函数,避免了cmp.ready之前操作dom造成的错误;<br>
 *             如果设置成false,则返回的数据无论是否cmp.ready,都会立即执行回调函数</li>
 *         <li>调用该ajax发送请求,必须设置fastAjax参数为true,用于区分和其他正常ajax调用的区别</li>
 *         <li>该组件的调用除了上述四点,无其他异于正常调用ajax的操作</li>
 *         <li style="color:red;">注:如果页面的渲染数据和数据量是达标的,不用使用此组件进行优化</li>
 *     </ul>
 *     <br>
 <strong>
 *          页面需要导入的文件
 *          <ul>
 *              <li>cmp-ajax-fast.js</li>
 *          </ul>
 *      </strong>
 *
 * @module Ajax-fast
 * @subtitle 快速ajax
 */

/**
 * 快速ajax
 * @namespace cmp
 * @class ajax_
 * @constructor
 * @param {Object} options 配置参数
 *      @param {String} options.type ajax请求类型,"GET"或者"POST",默认get
 *      @param {String/Object} [options.data] 请求参数,接受字符串,或者formData
 *      @param {String} options.url 请求地址
 *      @param {Object} [options.headers] 请求header
 *      @param {String} [options.dataType] 参数类型 默认json,接受formData
 *      @param {Number} [options.timeout] 请求超时设置,默认60000(单位:毫秒)
 *      @param {Function} [options.success] 请求成功回调
 *      @param {Function} [options.error] 请求失败回调
 *      @param {Boolean} options.cmpReady2Fire 是否是在cmp.ready后再执行ajax的回调函数
 *      @param {Boolean} options.fastAjax 标识该ajax是否是fastAjax  必须设置成true
 *
 * @example
 * ```
 * 文件导入路径:
 * M3App端
 *  <script  src="http://cmp/v/js/cmp-ajax-fast"></script><!--注意此文件的导入顺序-->
 *  <script  src="http://cmp/v1.0.0/js/cordova/__CMPSHELL_PLATFORM__/cordova.js"></script>
 *  <script  src="http://cmp/v1.0.0/js/cordova/cordova-plugins.js"></script>
 *  <script  src="http://cmp/v/js/cmp.js"></script>
 *  ===========================================================================================
 *  微协同端:
 *  <script  src="/seeyon/m3/cmp/js/cmp-ajax-fast"></script><!--注意此文件的导入顺序-->
 *  <script  src="/seeyon/m3/cmp/js/cmp.js"></script>
 *  =========================================================================================
 *  调用组件
 * <script>
 *     cmp.ajax({
 *        type:"POST",
 *        data:JSON.stringify({"name":"x","sex":"nan"}),
 *        url:cmp.seeyonbasepath + '/rest/collaboration/getAll',//url的拼接  A8的域名 + rest + 应用模块名 + 具体接口名
 *        dataType:"json",
 *        timeout:"60000",
 *        cmpReady2Fire:true,
 *        fastAjax:true,
 *        headers:{
 *            'Content-Type': 'application/json; charset=utf-8',
 *            'Accept-Language' : "zh-CN",
 *            'option.n_a_s' : '1'
 *        },
 *        dataType:"json",
 *        success:function(result){
 *            //do something with success result;
 *        },
 *        error:function(error){
  *            if(!cmp.errorHandler(error)){ //先调用平台的错误统一处理机制
 *                //如果平台的统一处理机制处理不了,则自己写业务逻辑
 *                var code = error.code;
 *                if(code==500){
 *                   //根据code值做自己的业务逻辑
 *                }
 *            }
 *        }
 *     });
 * </script>
 * ```
 */
    
Top