Javascript异步数据的同步处理方法
数据处理方法封装
var DataWatch=(function(){
var gWatch={},cursor= 0,callback_key = 'callback',gMap={};
var check=function(cursor,name){
var _watcher=gWatch[cursor],itemCount = 0,resArr=[],flag=false;
if(!!map){
return;
}
if(name && typeof (_watcher[name]) === undefined){
return;
}
for(var key in _watcher){
if(key === callback_key){
continue;
}
if(gMap[key]){
_watcher[key]=true;
resArr.push(map[key]);
}
itemCount++;
}
if(resArr.length === itemCount){
_watcher[callback_key] && _watcher[callback_key].apply(this,resArr);
}
resArr=null;
};
return {
watch:function(name,callback){
//兼容watch单个内容
if(typeof(name) === 'string' ){
name=[name];
}
var _watcher={};
name.forEach(function(item){
_watcher[item]=false;
})
_watcher[callback_key]=callback;
cursor++;
gWatch[cursor]=_watcher;
check(cursor);
},
put:function(key,value){
gMap[key]=value;
for(var cursor in gWatch){
check(cursor,key);
}
}
}
})()
使用方法可以下面这样
func1.ajaxSucc:DataWatch.put(key1,value1)
func2.ajaxSucc:DataWatch.put(key2,value2)
func3.ajaxSucc:DataWatch.put(key3,value3) DataWatch.watch([key1,key2],function(value1,value2){
}) DataWatch.watch([key1,key3],function(value1,value3){
})
Javascript异步数据的同步处理方法的更多相关文章
- Vue.js的列表数据的同步更新方法
这次给大家带来Vue.js的列表数据的同步更新方法,Vue.js列表数据同步更新方法的注意事项有哪些,下面就是实战案例,一起来看一下. 数组的 push(),pop(),shift(),unshift ...
- [转载]Javascript异步编程的4种方法
NodeJs的最大特性就是"异步" 目前在NodeJs里实现异步的方法中,使用“回调”是最常见的. 其实还有其他4种实现异步的方法: 在此以做记录 --- http://www.r ...
- (转)javascript异步编程的四种方法
本文转自:http://www.ruanyifeng.com/blog/2012/12/asynchronous%EF%BC%BFjavascript.html 作者:阮一峰 本文仅仅作为个人mark ...
- Javascript异步编程的4种方法
你可能知道,Javascript语言的执行环境是"单线程"(single thread). 所谓"单线程",就是指一次只能完成一件任务.如果有多个任务,就必 ...
- Javascript 异步编程的4种方法
你可能知道,Javascript语言的执行环境是"单线程"(single thread). 所谓"单线程",就是指一次只能完成一件任务.如果有多个任务,就必须排 ...
- Javascript 异步编程的4种方法详解
你可能知道,Javascript语言的执行环境是"单线程"(single thread). 所谓"单线程",就是指一次只能完成一件任务.如果有多个任务,就必须排 ...
- 转:Javascript异步编程的4种方法
你可能知道,Javascript语言的执行环境是"单线程"(single thread). 所谓"单线程",就是指一次只能完成一件任务.如果有多个任务,就必须排 ...
- Javascript异步编程的4种方法(阮一峰)
转载: http://www.ruanyifeng.com/blog/2012/12/asynchronous%EF%BC%BFjavascript.html 你可能知道,Javascript语言的执 ...
- (转载)Javascript异步编程的4种方法
你可能知道,Javascript语言的执行环境是"单线程"(single thread). 所谓"单线程",就是指一次只能完成一件任务.如果有多个任务,就必须排 ...
随机推荐
- Swift - 程序进入后台,以及应用终止时调用的方法
在AppDelegate中有如下两个方法要注意: applicationDidEnterBackground() 当应用进入后台时起作用 applicationWillTerminate() 当应 ...
- 关于Hibernate数据库连接进程释放
最近手里头又一桩事情蛮好玩的,就是用Hibernate进行批处理的时候,发现连接数暴增,oracle连接进程数吓死人.解决方案:不是把连接池设置成最大,那样服务器承载不了.及时清除缓存.另外在hibe ...
- 自定义ALV控件的工具条按钮
*&---------------------------------------------------------------------* *& Report YTEST028 ...
- myBatis 基础测试 表关联关系配置 集合 测试
myBatis 基础测试 表关联关系配置 集合 测试 测试myelipse项目源码 sql 下载 http://download.csdn.net/detail/liangrui1988/599388 ...
- Qt之VLFeat SLIC超像素分割(Cpp版)
源地址:http://yongyuan.name/blog/vlfeat-slic-with-qt.html 近段时间学了点Qt,恰好前段时间用借助VLfeat以及OpenCV捣鼓了SLIC超像素分割 ...
- 绘制FastMM内存分配流程图(小块内存分配)
http://blog.csdn.net/henreash/article/details/38751353
- Delphi中类的运行期TypeInfo信息结构说明
Delphi中类的运行期TypeInfo信息结构说明 CnPack 开源软件项目 2007-09-19 21:55:58 Delphi中类的运行期TypeInfo信息结构说明作者:刘啸CnPack开发 ...
- SVNKit getFileFromSVN
/* * ==================================================================== * Copyright (c) 2004-2011 ...
- JAVA线程相互排斥问题
public class TraditionalThreadSynchonized { public static void main(String[] args) { final OutPuter ...
- nginx做下载限速
nginx做下载限速-szszszsz-ChinaUnix博客 nginx做下载限速 2009-12-25 14:34:57 分类: 系统运维 nginx做下载服务器,在性能上满足需求.自带limit ...