javascript是否在HTML元素css display:none执行后运行?

时间:2014-01-15 04:03:37

标签: javascript html css responsive-design

我正在建立一个响应式网站。但是在手机上,加载需要很长时间。我认为这是因为javascript。在慢速手机上,执行javascript可能是个问题。因此,如果我隐藏了一些将由javascript处理的元素(display: none),那些元素的所有脚本都将正常执行或以其他方式执行吗?
也许这是一个糟糕的问题,但有人请解释javascript在这种情况下的工作原理。

3 个答案:

答案 0 :(得分:3)

是的,除非您使用的是:visible选择器,否则jQuery仍会在DOM中找到使用display:none设置样式的元素。

答案 1 :(得分:2)

JavaScript仍然可以看到这些元素。

有一些很多可能会影响手机的性能,并且有很多事情可以帮助它变得更好(浅CSS选择器,事件委托,非DOM)操作,重组JS是模块化的,并将其延迟加载到页面上,.png优化图像,连接和压缩JS / CSS,用于内存管理的对象池... ...

很多事情要从手机中挤出更多性能......

但是“display:none”不会阻止JS查看或使用这些元素,如果你做了很多查询选择器的话:

$(“#my-div .my-span”)。each(“...”);

这样做会保持正确。

答案 2 :(得分:2)

在HTML元素上将显示设置为none不会阻止在其上执行JavaScript。否则用JavaScript显示和/或隐藏元素会很麻烦。

为了加快您的网站速度,可以使用多种技术。许多都取决于你的情况。听起来你可能会因延迟加载JavaScript而受益,即将它移动到body标签的底部。这样做可以在加载所有JavaScript之前渲染页面。

Google的PageSpeed可能会帮助您指导其他改善页面加载时间的方法。

https://developers.google.com/speed/docs/insights/about