|
|
1
29
首先有一点解释:内联JavaScript的要点是尽快将其包括在内。但是,“可能”取决于脚本需要声明的DOM节点。例如,如果您有一些需要JavaScript的导航菜单,您可以在HTML中定义菜单后立即包含脚本。
只要只寻址您知道已声明的DOM节点,就不会遇到DOM不可用性问题。至于IE问题,开发人员必须从战略上包括他们的脚本,这样就不会发生这种情况。这并不是什么大问题,也不难解决。这方面的真正问题是“大局”,如下所述。 当然,每件事都有利弊。 赞成的意见
欺骗
我使用这种技术吗?
其他人可以使用它吗? 开发人员将做他们想做/需要做的事情来完成工作,并让他们的客户/老板/营销部门高兴。这里有一些取舍,只要你理解并管理它们,你就应该不会有任何问题。 |
|
|
2
1
内联脚本的最大问题是无法正确缓存。如果您将所有脚本存储在一个缩小的js文件中(使用编译器),那么浏览器只需为整个站点缓存一次该文件。 如果你的网站比较繁忙,那么从长远来看,这会带来更好的性能。为脚本创建一个单独的文件的另一个优点是,您往往不会“重复您自己”,并尽可能多地声明可重用的函数。DOMContentReady不会导致糟糕的用户体验。至少,它为用户提供了手头上的内容,而不是让用户等待UI加载,这可能最终会让用户感到厌烦。 此外,使用内联脚本并不能确保UI的响应速度比与DOMContentReady一起使用时更快。设想一个场景,您使用内联脚本进行ajax调用。如果你有一张表格要交罚款。如果有多个表单,那么最终会重复ajax调用。。因此每次都重复相同的脚本。最后,它会导致浏览器缓存比在DOM就绪时加载的js文件中分离出来的javascript代码更多的javascript代码。 使用内联脚本的另一大缺点是需要维护两个独立的代码库:一个用于开发,另一个用于生产。您必须确保两个代码基保持同步。开发版本包含代码的非精简版本,生产版本包含精简版本。这是开发周期中的一大难题。您必须手动将隐藏在那些庞大html文件中的所有代码片段替换为缩小版本,并且最终希望没有代码中断!然而,由于在开发周期中维护一个单独的文件,您只需要在生产代码库中用编译的简化版本替换该文件。
etag .
|
|
|
3
0
避免内联脚本的一个原因是,它要求您在文档中将任何依赖项库放在它们之前,这可能会抵消内联脚本的性能提升。我熟悉的最佳实践是将所有脚本(放在一个HTTP请求中!)在文件的最后,就在
如果没有魔杖,我们总是要做出这些取舍。谢天谢地,HTML文档本身将越来越成为所提出的资源密集度最低的请求(除非您正在做一些愚蠢的事情,比如大型应用程序)
|
|
|
4
0
我认为这个建议并没有真正的帮助。DOMContentReady可能只是一种不好的做法,因为它目前被过度使用(可能是因为jquery易于使用的ready事件)。许多人把它作为一次“启动”活动 任何 javascript操作。尽管jQuery的ready()事件也只是用来作为DOM操作的启动点。 根据推断,页面加载上的DOM操作会导致糟糕的用户体验!!因为 它们不是必需的 ,服务器端可以完全生成初始页面。 那么,也许闭包团队成员只是试图朝相反的方向走,阻止人们对页面加载进行DOM操作? |
|
|
5
0
|
|
|
6
0
如果您需要自己处理HTML,谷歌的方法似乎非常笨拙。他们使用编译的方法,并且可能在其他问题上浪费他们的大脑周期,考虑到他们应用程序的复杂用户界面,这是明智的。如果你想要一些要求更宽松的东西(阅读:几乎所有其他东西),可能不值得付出努力。 但遗憾的是,GWT只会说Java。 |
|
|
7
-1
这可能是因为谷歌不在乎你是否有Javascript,他们做任何事情都需要它。如果您在已经运行的网站上使用Javascript作为补充,那么在DOMContentReady中加载脚本就可以了。关键是使用Javascript来增强用户体验,而不是在用户没有Javascript的情况下将其隔离。 |
|
Error 1004 · 使用VBA从HTML中提取信息 8 年前 |
|
|
myroslav · IE11中Angular 4应用程序崩溃 8 年前 |
|
|
sankar · IE不显示abbr标记的边框底部 8 年前 |