2014-01-15 47 views
0

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

+4

这本来很容易测试。 – meagar

回答

3

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

2

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

有一个很多东西可以伤害在手机上的表现,并有很多事情可以做,以帮助它更好(浅CSS选择器,事件代表团,离DOM操作,重组JS模块化,懒惰加载到一个页面,.png优化图像,串联和压缩的JS/CSS,对象池用于内存管理)...

很多东西挤出更多的性能的手机......

但是“display:none”不会阻止JS看到或使用这些元素,并且如果你正在做很多查询选择器的东西:

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

它会保持正确的做法。

2

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

为了加快您的网站,有一些可以使用的技术。很多都取决于你的情况。听起来您可能会从后期加载JavaScript中受益,即将其移动到身体标记的底部。这样做可以让您的页面在加载所有JavaScript之前进行渲染。

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

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

相关问题