js异步调用实现
2014-01-10 17:27
344 查看
使用场景:
由于网页中有大量的As与JS交互。As加载与初始化过程比较长。当As未初始化完成,JS开始调用会导致JS报错,影响后续JS的运行。
异步代码:
function Async(){ // 是否开始标记 this.isRead = false, this.fs = new Array(), // this对象 // 准备好了 this.read = function() { this.isRead = true; for(var i = 0; i<this.fs.length; i++) { this.execute(this.fs[i].o,this.fs[i].f,this.fs[i].p,this.fs[i].r) } this.reInit(); }, // 对象初始化 this.reInit = function() { this.fs = new Array(); // this对象 }, // 代理调用函数 this.proxy = function(obj,fc,params,reFc){ if(this.isRead) { this.execute(obj,fc,params,reFc); return; } // 将函数与对应参与放到对象内 this.fs[this.fs.length] = { "o":obj, "f":fc, "p":params, "r":reFc } }, // 执行 this.execute = function(obj,fc,params,reFc) { var result = fc.apply(obj, params); if(reFc) { reFc.apply(this, [result]); } } }
使用示例:
// 测试代码 //测试对象 var t = { g1:function(v){ console.log("g1:目标方法,传递参数:%O",v); return v; }, g2:function(v) { console.log("g2:回调方法,返回:" + v); } }; // 使用对象 var a = new Async(); a.proxy(t,t.g1,["这是测试"],t.g2); a.read();
相关文章推荐
- c# asp.net js 实现异步调用 ajax基础
- Ajax客户端异步调用服务端的实现方法(js调用cs文件)
- cordova配置(实现webapp跨平台开发,js调用原生API)
- js实现异步循环实现代码
- Spring Boot使用@Async实现异步调用:自定义线程池
- Boost库实现线程池学习及线程实现的异步调用
- Spring boot ApplicationEvent实现异步调用
- PHP实现异步调用方法研究与分享
- PhoneGap或者Cordova框架下实现Html5中JS调用Android原生代码
- PHP实现异步调用方法研究
- Struts2之struts2自带插件实现异步调用
- PHP实现异步调用方法研究与分享
- js调用浏览器打印模块实现点击按钮触发自定义函数
- asp.net下利用JS实现对后台CS代码的调用方法
- 异步加载页面,页面中的js的调用问题
- JS链式调用的实现方法
- 实现支持文件分块多点异步上传的 Web Services 及其客户端(非Web)应用程序调用相关异步执行的 Web Method
- C#中使用iframe结合js实现图片异步上传
- JS实现AOP拦截方法调用
- 通过异步程序调用(APC)实现的定时功能