帖子
帖子
用户
博客
课程
123下一页
返回列表 发新帖
显示全部楼层
124
帖子
0
勋章
2476
Y币

缓存win,最快速版本js

[复制链接]
发表于 2015-10-30 17:00:22
  1. var page = '';
  2. (function() {
  3.         var a = [];
  4.         var e = [];

  5.         function keybackE(cb) {
  6.                 if (typeof(cb) == 'function') {
  7.                         e.push(cb);
  8.                 }
  9.                 pageapiready(function() {
  10.                         api.addEventListener({
  11.                                 name: 'keyback'
  12.                         }, function(ret, err) {
  13.                                 for (var k = 0; k < e.length; k++) {
  14.                                         e[k]();
  15.                                 }
  16.                                 hideWin();
  17.                         })
  18.                 })
  19.         }
  20.         apiready = function() {
  21.                 for (var i = 0; i < a.length; i++) {
  22.                         a[i]();
  23.                 }

  24.         }

  25.         function pageapiready(fn) {
  26.                 a.push(fn);
  27.         }
  28.         var firstParam = '';

  29.         function openWin(pg) {
  30.                 var x = {};
  31.                 if (firstParam == '') {
  32.                         firstParam = x = pg.staticParam;
  33.                 }
  34.                 api.sendEvent({
  35.                         name: pg.name + '_doSomething',
  36.                         extra: {
  37.                                 pageParam: pg.pageParam
  38.                         }
  39.                 })
  40.                 api.openWin({
  41.                         name: pg.name,
  42.                         url: pg.url,
  43.                         pageParam: {
  44.                                 value: {
  45.                                         pageParam: pg.pageParam,
  46.                                         staticParam: {
  47.                                                 prepName: api.winName,
  48.                                                 staticParam: x
  49.                                         }
  50.                                 }
  51.                         }
  52.                 })
  53.         }
  54.         var staticParam = '';

  55.         function getStatic() {
  56.                 return staticParam;
  57.         }

  58.         function dataAction(cb) {
  59.                 pageapiready(function() {
  60.                         staticParam = api.pageParam.value.staticParam;
  61.                         api.addEventListener({
  62.                                 name: api.winName + '_doSomething'
  63.                         }, function(ret, err) {
  64.                                 return cb(ret.value.pageParam, err);
  65.                         })
  66.                         return cb(api.pageParam.value.pageParam, null);
  67.                 })
  68.         }

  69.         function hideWin(pg) {
  70.                 var pageParam = {
  71.                         pageParam: {}
  72.                 }
  73.                 for (var x in pg) {
  74.                         pageParam[x] = pg[x];
  75.                         api.sendEvent({
  76.                                 name: staticParam.prepName + '_doSomething',
  77.                                 extra: pageParam
  78.                         });

  79.                 }

  80.                 api.openWin({
  81.                         name: staticParam.prepName,
  82.                         animation: {
  83.                                 type: "push",
  84.                                 subType: "from_left",
  85.                                 duration: 300
  86.                         }
  87.                 })
  88.         }

  89.         function closeWin(pg) {
  90.                 var pageParam = {
  91.                         pageParam: {}
  92.                 }
  93.                 for (var x in pg) {
  94.                         pageParam[x] = pg[x];
  95.                         api.sendEvent({
  96.                                 name: staticParam.prepName + '_doSomething',
  97.                                 extra: pageParam
  98.                         });
  99.                 }
  100.                 api.closeWin();
  101.         }
  102.         page = {
  103.                 keybackE: keybackE,
  104.                 pageapiready: pageapiready,
  105.                 openWin: openWin,
  106.                 dataAction: dataAction,
  107.                 hideWin: hideWin,
  108.                 getStatic: getStatic,
  109.                 closeWin: closeWin
  110.         }
  111. })()
复制代码
只给会的人看
89
帖子
0
勋章
1万+
Y币
代码估计要好好解释下,作用、方法、思想、效果!不然95%的人估计看不明白。顶一个!
0
帖子
0
勋章
9
Y币
变量名都定义成a和e了,让人怎么看,建议先好好看看《重构》吧,这种代码,cr肯定要被喷死的
124
帖子
0
勋章
2476
Y币
gola 发表于 2015-10-31 01:10
变量名都定义成a和e了,让人怎么看,建议先好好看看《重构》吧,这种代码,cr肯定要被喷死的 ...

你看一楼会了哟,呵呵,会的人一看就知道是干嘛的,怎么用
8
帖子
0
勋章
1万+
Y币
感谢分享
21
帖子
0
勋章
449
Y币
收藏,谢谢分享~~
0
帖子
0
勋章
9
Y币
老油条 发表于 2015-11-2 17:57
你看一楼会了哟,呵呵,会的人一看就知道是干嘛的,怎么用

看自然是能看懂,但问题是花五分钟看懂还是花二十分钟看懂,代码质量还是要注意的,如果你是在校学生的话,可以不用太注意。
124
帖子
0
勋章
2476
Y币
gola 发表于 2015-11-5 11:15
看自然是能看懂,但问题是花五分钟看懂还是花二十分钟看懂,代码质量还是要注意的,如果你是在校学生的话 ...

恩,这是自然,用在你的项目里会很有用哟
0
帖子
0
勋章
9
Y币
老油条 发表于 2015-11-5 16:26
恩,这是自然,用在你的项目里会很有用哟

好的 赞分享~
2
帖子
0
勋章
32
Y币
写那么多,对首次加载然并卵……
123下一页
您需要登录后才可以回帖 登录

本版积分规则