帖子
帖子
用户
博客
课程
显示全部楼层
97
帖子
0
勋章
576
Y币

过年了,菜鸟来分享点小东西,关于loading的

[复制链接]
发表于 2016-2-5 10:21:14
本帖最后由 玉林 于 2016-2-5 10:23 编辑

异步有时会导致你的数据还没有获取到就执行到了下面应用这个数据的代码上了。比如:我要先动态加载一个JS,然后用里面的b变量去做运算,但是实际在操作时会发现JS还没有加载进来,代码就到应用B去运算了,程序就会报错,没有这个b

所以我们要让程序在这里停下来等JS加载完成,说一下我的小方法,给菜鸟的哈,老鸟别笑。要用到setInterval定时器和流浪男兄弟的AUI框架中的个性LOADING部分

  1. var cs =10;
复制代码
  1. //============================================================================
  2.                 //-------------------------个性LOADING显和隐部分------------------------------
  3.                 //   在调用 时,先把条件 和要执行的代码用一个函数写好,然后传过来 funCs,接下来进行调用
  4.                 function cesii() {//模板样式
  5.                         if (cs > 0) {
  6.                                 cs--;
  7.                         } else {
  8.                                 hide();
  9.                                 clearTimeout(t);
  10.                         }
  11.                 }

  12.                 function LoadingGX(funName) {
  13.                         show();
  14.                         t = setInterval(funName, 500);
  15.                 }

  16.                 function hide() {
  17.                         //alert("dgdfg")
  18.                         $api.remove($api.dom('.aui-loading'));
  19.                 }

  20.                 function show() {
  21.                         var loading = $api.dom(".aui-loading");
  22.                         if (!loading) {
  23.                                 //$api.append($api.dom('body'),'<div class="aui-loading"><div class="aui-loading-1"></div><div class="aui-loading-2"></div></div><div class="aui-loading"><div id = "jzjindu" class="aui-progress-bar" style="width: 0%;">加载任务中</div></div>');
  24.                                 $api.append($api.dom('body'), '<div class="aui-loading"><div class="aui-loading-1"></div><div class="aui-loading-2"></div></div>');
  25.                         }
  26.                 }

  27.                 //-------------------------------
复制代码


只要用一个函数写好你的条件
  1. function cesii() {//模板样式
  2. if (cs > 0) {
  3. cs--;
  4. } else {
  5. hide();
  6. clearTimeout(t);
复制代码
接下来调用 和传参数就可以了
  1. LoadingGX(cesii)
复制代码


不知道我说没有说明白。或者大家有更好的方法,一定告诉我,我好学习一下。希望早日从菜鸟变成,变成,还是不要想了

4
帖子
1
勋章
1337
Y币
谢谢分享
您需要登录后才可以回帖 登录

本版积分规则