JavaScript会阻止页面的呈现,因为脚本可能会执行document.write或执行其他修改以使呈现的页面无效,因此最佳做法是将脚本标记放在页面底部。这样做的缺点是你不能在页面中间使用jquery,甚至不能使用$(document).ready()。相反,你必须在加载jquery之后放置所有脚本,或者你必须使用本机window.onload或编写一个轻量级处理程序来在加载jquery之后注册你的回调。
您可以尝试将脚本标记放在页面底部
<!DOCTYPE> <html> <head> <title>Hello</title> <link rel="stylesheet" href="jquery.mobile-1.1.1.min.css" /> </head> <body> <h1>Hello</h1> </body> <script src="jquery-1.7.2.min.js"></script> <script src="jquery.mobile-1.1.1.min.js"></script> </html>
并且一切都应该加速,但脚本需要2-3秒
如果脚本花费的时间太长,您可以将它们移到页面底部:
<!DOCTYPE html> <html> <head> <title>Hello</title> <link rel="stylesheet" href="jquery.mobile-1.1.1.min.css" /> </head> <body> <h1>Hello</h1> <script src="jquery-1.7.2.min.js"></script> <script src="jquery.mobile-1.1.1.min.js"></script> </body> </html>
然后,这样做将使得更难以准确预测发生了什么以及何时发生。但是DOM应该在阻塞脚本标记加载之前加载和呈现。
现在你只需要弄清楚如何处理它。
尝试将JS放在底部
<!DOCTYPE> <html> <head> <title>Hello</title> <link rel="stylesheet" href="jquery.mobile-1.1.1.min.css" /> </head> <body> <h1>Hello</h1> <script src="jquery-1.7.2.min.js"></script> <script src="jquery.mobile-1.1.1.min.js"></script> </body> </html>
jQueryMobile是 不是那个 以它闻名 响应 。即使你已经尝试过每一次优化。
您可以尝试通过加载脚本 document.createElement() 虽然。 (理想情况下,即使这应该在底部)
document.createElement()
function createScript(src){ var script = document.createElement('script'); script.src = src; document.getElementsByTagName('head')[0].appendChild(script); }
这样做的有效方法是仅在页面呈现后开始加载和执行脚本。即亲切的 异步 。
如果你有很多这样的人。
var files = ['1.js', '2.js', '3.js']; files.map(createScript);
<子> 另外,我会保证SenchaTouch(如果这是你愿意考虑的选项) 子>