js ajax 同步 执行完js之后才执行插入html
功能:使用js分页,需要按顺序请求后台接口,并按先后顺序把后台得到的数据,使用js拼接html插入到指定位置。
方案:为了代码可读性,使用了一个for循环,依次调用同一个ajax请求函数(每次传入指定页码),将得到的数据拼接成html,插入到指定位置;为了保证顺序性,ajax设置为同步传输,期待能够顺序返回,顺序插入。
现象:所有的ajax请求都返回数据、拼接完数据之后,才执行了插入html,而不是返回一个数据,插入一个html
原因:浏览器有两个线程,js引擎(JS内核)线程和GUI线程,分别对应执行js和渲染页面(插入html就是渲染页面),这两个进程之间一个时间只能执行一个,所以如果ajax设置了是同步执行,那么浏览器就会一直执行js线程,等执行完,才会去执行插入html的操作。可以参考同事找到的原因:https://www.cnblogs.com/yiyi17/p/8645830.html
解决方案:ajax改成异步执行,不再使用外部循环调用ajax函数保证顺序,而是通过递归调用保证顺序,即上一个ajax执行成功之后,再调用自己执行下一次
js ajax 同步 执行完js之后才执行插入html相关推荐
- Semaphore控制同时访问的线程个数countdownlatch等待多个线程执行完本身线程再执行...
Semaphore控制同时访问的线程个数countdownlatch等待多个线程执行完本身线程再执行 Semaphore控制同时访问的线程个数countdownlatch等待多个线程执行完本身线程再执 ...
- Java等线程池执行完所有任务后再执行主线程
2019独角兽企业重金招聘Python工程师标准>>> 因为要定时往数据库插入上百万数据,插入完之后再修改另外一部分数据, 怎么在线程池执行完所有任务后再执行主线程呢 import ...
- js设置ajax执行顺序,ajax同步处理(使得JS按顺序执行)
在项目中碰到一个问题: 图一: 图二: 函数1代码:这里是因为有ajax请求,默认的是异步的 //点击分页页码,请求后台返回对应页码的数据 function getdata(fewPage,flag, ...
- js等待ajax执行完,js等待方法执行完再执行
您好 哈哈,我刚解决了一个这样的问题如果直接for然后ajax,肯定是不行的因为ajax是异步调用,for循环都循环完了,ajax说不定才执行了第一个调用当然用同步调用的方式可以解决,但同步会阻塞浏览 ...
- js样式会影响ajax,js ajax同步请求造成浏览器假死的问题
今天写了一个简单的loading效果,希望在点击加载按钮后会出现loading字样,然后执行ajax同步请求,加载完之后loading样式消失,本来是很简单的需求,结果遇上了很尴尬的问题~ 问题:当我 ...
- js 等待某个函数执行完_JS 函数的执行时机
JS函数在不同的时候运行,会有不同的运行结果,本文将分别举例分析 案例一 let a = 1 function fn(){ console.log(a) } 注意:这里不会打印任何东西,因为函数只是声 ...
- cefsharp执行完js代码后获取返回值问题
CefSharp相关操作 Task<CefSharp.JavascriptResponse> t = mychrome.GetBrowser().MainFrame.EvaluateScr ...
- 原生js.ajax内存溢出,【JS】解决内存溢出问题
首页 专栏 javascript 文章详情 0 解决内存溢出问题 comer发布于 27 分钟前 webpack 运行 npm run build 内存溢出 JavaScript heap out o ...
- ace.js ajax 跳转,ace.js中文使用手册,收集比较全面
发表于黑白课堂 ace.js 官方的github https://github.com/ajaxorg/ace ace 是一个用 JavaScript 编写的独立代码编辑器.我们的目标是创建一个基于浏 ...
- js ajax局部替换,纯JS实现AJAX局部刷新功能
AJAX即"Asynchronous Javascript And XML"(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术. AJAX = 异步 J ...
最新文章
- 【Codeforces】967C Stairs and Elevators (二分)。
- 10万视频,所有面部图像均获授权,Facebook创建大规模Deepfake数据集
- OSNIT信息收集分析框架OSRFramework
- mysql 集群切换_完美起航-MySQLMHA高可用集群部署及故障切换(图文详解)
- linux 代码更新-打包-重启脚本
- 需求文档可以不签字吗之二-理论推导
- 五、Go语言复合数据类型(下)
- MyEclipse报错:String cannot be resolved to a type
- 东莞市初中生中考计算机内容,2019年广东东莞市中考考试科目及内容
- Google Analytics使用说明
- tf 设置多显卡_海美迪H7四代解码4k hdr局域网教程,用TF卡双启动libreELEC成功
- Win10连接NAS网络存储器失败解决方法
- 教你怎么去apple developer center(苹果开发者中心)下载Xcode的dmg安装包
- 手机修图软件测试,10款好用的手机图片编辑器软件排行榜
- 为你的App瘦身,优化你的App
- mmdection的安装、测试,心酸历程
- 解析SWD协议,烧写程序
- js查找数组中符合条件的元素
- Postman学习_Sinno_Song_新浪博客
- python反恐精英基础版_python反恐精英
热门文章
- 自绘GroupBox控件
- spark分片个数的确定及Spark内存错误(GC error)的迂回解决方式
- 将php中stat()得到的文件权限转成Linux形式
- Codeforces Beta Round #80 (Div. 1 Only) D. Time to Raid Cowavans 分块
- android studio 上手使用 大水逼问题
- linux 内存pss,内存耗用:VSS/RSS/PSS/USS
- 拓端tecdat|电力消耗模型构建、分析和预测
- 拓端tecdat|r语言聚类分析:k-means和层次聚类
- 拓端tecdat|matlab脉冲响应图的时域特征
- pytorch进度条