我需要将一些带有html页面的数据发送到浏览器,这将由javascript(用户的详细信息等内容)使用。 我看到了两种方法,我想知道哪一个更好(阻止浏览器更少,表现更好):
1.html中的内联脚本:
<script>var userData = {username:'joe',age:42,pet:'dog'}</script>`
html中的2.data属性:
<div id="user-data" style="display:none" data-username="joe" data-age="42" data-pet="dog"></div>` and code in external javascript file: `function getUserData() {..this extracts the data from the div and caches it...}
我知道内联脚本标签会阻止浏览器,另一方面它们的解析速度可能会比以后用javascript更快。
答案 0 :(得分:1)
如果您真的不想使用ajax,可以考虑使用<script type="application/json"></script>
将您要发送的数据与您的页面一起使用。然后编写一个脚本非常容易,该脚本在页面加载时从页面中抓取所有json作为附加页面数据。您已经延迟执行的好处是,您不会将数据直接注入全局范围,也不会在服务器端生成JavaScript。
答案 1 :(得分:0)
至少就用户而言,性能几乎没有差异。使用<script>
标签会更加清晰,所以我会说这个。
添加脚本(外部或内部)的最佳方法是将它们放在body
标记的底部。这将延迟脚本的执行,直到加载整个DOM,这不仅可以提高感知性能,而且在大多数情况下,您不需要DOMContentLoaded
回调来获取元素。
答案 2 :(得分:0)
如果数据与DOM元素直接相关,那么我会使用第二种方法......但是如果数据是独立的,那么第一种方法将是我的方式....
没有任何性能损失 - 浏览器没有“阻塞”。