沃梦达 / IT编程 / 前端开发 / 正文

如何解决Ajax的content-download时间过慢问题

这篇文章主要介绍了Ajax的content-download时间过慢问题的解决方法及思考过程,本文通过事件背景,过程分析,给大家介绍的非常详细,需要的朋友参考下吧

前言:

今天这篇文章给大家介绍关于ajax的content-download时间过慢问题的解决与思考。

事件背景:

开发人员反馈给我一个bug,ajax相应速度很慢,经过定位,速度慢的原因在于,content-download时间过长,在chrome中有2s+的延迟,后证实在我们的手机客户端里也有这一延迟。截图如下:

bug解决:

结合上诉原因并通过查看的几个帖子讨论,得出如下结论:

1.chrome浏览器的mousewheel事件是引起这一延迟的原因(mousewheel事件不是标准事件,不推荐大家使用),当然!代码中我并没有使用mousewheel事件,但是使用scroll事件就可能会引起mousewheel事件的冲突,而在我们特质的手机客户端中的webview不幸的也命中了这一缺陷。

2.想要解决这个问题,可以尝试监听这一事件(如果浏览器没有这一事件,也不会响应这一监听,没有冲突),并在事件触发的时候,取消其所有默认行为:

故通过监听其事件模型的 deltaY(鼠标垂直滚动量)当其有垂直位移的时候,触发preventDefault,故代码如下:


 window.addEventListener("mousewheel", (e) => {
   if (e.deltaY === 1) {
     e.preventDefault();
   }
 })

将这段代码加入前端基础库的页面初始化代码中,神奇的发现相关的页面content-download延迟问题都得到了解决。

总结:

兼容性问题的本质:   

webkit架构中,有一些模块在浏览器中是普遍不共享的,有一些模块在浏览器中是某些特性不共享的,而且可以通过不同的编译配置改变它们的行为。所以,很多使用webkit的浏览器可能会表现出不同的行为。

以上所述是小编给大家介绍的解决Ajax的content-download时间过慢问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对编程学习网网站的支持!

本文标题为:如何解决Ajax的content-download时间过慢问题