Ajax在处理上的问题

2020年10月9号,今天在Ajax同步和异步问题上花费了大量的事件和精力,也收获到了一点点经验。

同步

Ajax同步和异步上问题的处理
把async改成false时候ajax请求变成同步,导致我的页面出现假死,如果在beforeSend中
加Alert,是有在执行的,但是无法弹出我的遮蔽层。

原因如下

JQ 在1.5版本之前 设置成同步的时候,页面会出现假死现象,导致beforeSeed调用渲染页面失败

假死原因: 浏览器的渲染(UI)线程和js线程是互斥的,在执行js耗时操作时,页面渲染会被阻塞掉。
当我们执行异步ajax的时候没有问题,但当设置为同步请求时,其他的动作(ajax函数后面的代码,还有渲染线程)都会停止下来。
即使我的DOM操作语句是在发起请求的前一句,这个同步请求也会“迅速”将UI线程阻塞,不给它执行的时间。这就是代码失效的原因;

解决方法

一开始我查阅了一下网上的资料
Ajax同步和异步上问题的处理地址:https://blog.csdn.net/qq_40259641/article/details/82774777

但是我感觉如果换JQ版本,换了也不知道能否成功,我还是先从简单一点的把方法改成异步就好了。改完之后好了,之前的js事件没了反应。怎么狂按Enter没有反应?弄得我抓狂了,好了,又要去百度了

JS失效的原因

网上查找原因是
如果直接这样子写 ,直接绑定在dom元素上,说页面刷新替换了dom元素之后,就不认识了
真TM神奇,总感觉洗了澡之后就不是我了!那没办法只好换一种绑定方式。
Ajax同步和异步上问题的处理

解决办法

Ajax同步和异步上问题的处理
网上说:是事件代理或者叫事件委托,事件绑定的元素并不是触发的元素,而是其父(祖宗)元素,这时候只要父元素没被替换掉,子元素不管怎么替换,只要符合开始绑定的选择器,就可以触发。

感言

这是我的第一篇blog,其实一路工作学习,过来。肯定会遇到不少的问题,但一直也没有写blog只是通过电脑文本记录一下,或则是收藏一下别人写的好并且也解决了自己问题的blog。为什么选择在做前端技术的时候写,其实我是一名后端程序员,在一家小公司,前端的妹子走了,问题分发到我身上一开始挺觉得苦恼的,明明后端已经有很多东西要学习了,还要分精力学习前端的内容。但是没办法任务到手,不能不做,通过几天上班时候接触,夜间自己开小灶。越发觉得谢谢html,css,js挺有意思的,起码让我觉得写错了调试起来快很多。当然还有一个重点感悟 通过编程,你会表现解决方法的方式有很多,一种不行用第二种,第二种不行用第三种。当思考的多了,查询得多了。任务完成过后你会发现其实123种方法都可以,只是能力尚不够。 感觉这样很有趣。

冲冲冲!!!

相关文章: