今天写一个本地数据简单筛选功能的时候发现循环查询的时候会有明显的卡顿,遂加上loading加载来优化用户体验。可是加上loading加载发现依然会卡顿,调试发现代码执行的时候loading还没来得及开始线程就已卡住了。等循环结束loading才开始,这时候还要你何用啊。。。

well,言归正传

        startLoading();setTimeout(function(){console.log('开始查询');var stepValue = $("#produceStepSelect").val();var statusValue = $("#MachineStatusSelect").val();var timeLenValue = $("#timeLengthInput").val();var resultList = [];//三个条件根据是否输入做对比查询for (var i = 0; i < shiftData.length; i++) {var info = shiftData[i];var lenArr = info.timeLen.split(':');var minLength = parseInt(lenArr[0]) * 60 + parseInt(lenArr[1]) + (parseInt(lenArr[2]) == 0 ? 0 : 1);var flag1 = statusValue.length == 0 ? true : (info.status == statusValue);var flag2 = stepValue.length == 0 ? true : (info.textCode == stepValue);var flag3 = timeLenValue == 0 ? true : (minLength > parseInt(timeLenValue));if (flag1 && flag2 && flag3) {resultList.push(info);}}currentShiftList = resultList;shiftCommitList = [];//清空历史操作数组setUpStatusTable(resultList);},0);

setTimeout利用的是浏览器给js开辟新线程的方式,在规定时间之后将预定任务加入到js线程中执行,并且会排在当前js任务之后执行。

所以不需要给延迟时间,只需要把耗时任务放在timeout里面,它就会乖乖等loading开始之后才会执行内部的耗时代码了。

js 高耗时代码异步处理相关推荐

  1. 20230503 Javascript下载页面pdf的高质量代码

    目录 一. 前言 二.高质量代码的特征 三.编程实践 四. 实际代码 五. 总结 你是否曾经为自己写的代码而感到懊恼?你是否想过如何才能写出高质量代码?那就不要错过这个话题!在这里,我们可以讨论什么是 ...

  2. Vue.js高仿饿了么外卖App学习记录

    (给达达前端加星标,提升前端技能) 开发一款vue.js开发一款app,使用vue.js是一款高效的mvvm框架,它轻量,高效,组件化,数据驱动等功能便于开发.使用vue.js开发移动端app,学会使 ...

  3. 可视化高并发,高处理任务异步编排设计

    可视化高并发,高处理任务异步编排设计 在我们系统应用中,如首页,商品详情页,活动页等承载大流量的系统,通常是在web门面系统中对各系统的数据进行聚合,比如依赖服务调用,缓存,数据库调用等:往往这些依赖 ...

  4. 写一个静态HTML页面,直接写HTML代码和用JS动态生成代码,哪种方式要好

    如果写一个静态HTML页面,直接写HTML代码和用JS动态生成代码,哪种方式要好点?为什么? 不考虑人力因素(手写HTML太费时间排除),请从读取和解析或者其他的角度分析.谢谢 添加评论 分享 按投票 ...

  5. Java线程池源码解析及高质量代码案例

    引言 本文为Java高级编程中的一些知识总结,其中第一章对Jdk 1.7.0_25中的多线程架构中的线程池ThreadPoolExecutor源码进行架构原理介绍以及源码解析.第二章则分析了几个违反J ...

  6. 【笔记-vue】《imooc-vue.js高仿饿了么》、《imooc-vue 音乐app》、《imooc-vue.js源码全方位解析》

    20170709 - 20171128:<imooc-vue.js高仿饿了么> 一.第一章 课程简介 1-1课程简介 1.需求分析-脚手架工具-数据mock-架构设计-代码编写-自测-编译 ...

  7. 写出高质量代码的10个Tips

    7 条写作原则如下: 让段落成为写作的基本单位,每个段落只说 1 件事情: 省略不必要的词语: 使用主动式: 避免连串的松散句子: 把相关内容放在一起: 多用肯定语句: 善用平行结构: 对应的,在编码 ...

  8. 读书笔记:编写高质量代码--web前端开发修炼之道(二:5章)

    读书笔记:编写高质量代码--web前端开发修炼之道 这本书看得断断续续,不连贯,笔记也是有些马虎了,想了解这本书内容的童鞋可以借鉴我的这篇笔记,希望对大家有帮助. 笔记有点长,所以分为一,二两个部分: ...

  9. 编写高质量代码改善C#程序的157个建议——建议86:Parallel中的异常处理

    建议86:Parallel中的异常处理 建议85阐述了如何处理Task中的异常.由于Task的Start方法是异步启动的,所以我们需要额外的技术来完成异常处理.Parallel相对来说就要简单很多,因 ...

最新文章

  1. 免费版CloudFlare CDN基本设置参考
  2. oracle账号密码修改后特别容易锁定_Oracle数据库账号总是被锁?通过这里就可以发现是哪个IP造成的...
  3. TED+如何让压力成为朋友+如何面对压力决定你的未来
  4. 基于深度学习识别模型的缺陷检测
  5. Windows Phone开发(41):漫谈关键帧动画之下篇
  6. 图像分类简单介绍-转
  7. TMG2010发布web服务器
  8. PyMC3和Lasagne构建神经网络(ANN)和卷积神经网络(CNN)
  9. vuejs深入浅出—基础篇
  10. 279. Perfect Squares
  11. weblogic 下载文件问题
  12. 如何制作HTML网页设计【体育运动主题网站——中国篮球NBA】
  13. mysql数据库编程第六章试题_2016计算机二级MySQL数据库试题及答案
  14. 差异表达基因变化倍数_差异表达基因
  15. 计算机中year函数怎么使用,excel2010中YEAR函数的使用方法
  16. 关于Bmob的后端云的使用---傻瓜式数据库操作
  17. first season twenty-second episode,the color(yellow) dream???
  18. NLP-基础任务-中文分词算法(3)-基于字:基于序列标注的分词算法【BiLSTM+CRF】
  19. altera fpga大小如何衡量_【转】Xilinx和Altera的FPGA的对比
  20. 计算机怎么重装win7,如何重装电脑系统win7,最新电脑重装系统教程

热门文章

  1. python趣味程序_知道了这个,你也能写出 Python 趣味小程序
  2. JAVA --数字与字符串(四)格式化输出
  3. BTA | 陈建闽(阿德):Token的分散过程,一定要基于场景
  4. Andoid-----抽奖转盘----12宫格----实用性商业化
  5. Scientists discover how mosquitoes detect human sweat-由于嗅觉受体的存在,蚊子会被人体汗液中的乳酸所吸引,
  6. Hash Function 2021牛客暑期多校训练营1 数论 + NTT
  7. 3个月前被裁员了,心情跌落谷底,直到学姐给了我这份面试文档…
  8. javaweb的lib文件夹
  9. win10 html 无图标,win7系统html文件图标变成空白的处理方法
  10. LabVIEW编程LabVIEW控制KELLER压力传感器例程与相关资料