是否有任何技术可以在呈现 HTML 的同时呈现 javascript 文件?
我的第一个想法是将它加载到<script>
标签的头部,但正如我所见,这不会影响加载顺序,还是我错了?
问题是,有时我需要在页面加载时使用 javascript 来设置元素的宽度,这真的很烦人,因为在 HTML 中呈现元素后设置元素宽度的 javascript 代码。
是否有任何技术可以在呈现 HTML 的同时呈现 javascript 文件?
我的第一个想法是将它加载到<script>
标签的头部,但正如我所见,这不会影响加载顺序,还是我错了?
问题是,有时我需要在页面加载时使用 javascript 来设置元素的宽度,这真的很烦人,因为在 HTML 中呈现元素后设置元素宽度的 javascript 代码。
使元素在 HTML 中呈现为不可见,并让 Javascript 设置宽度然后使其可见。
除非您设置异步标志(在某些浏览器中),否则 JS 文件将阻止内容的加载。因此,您可以从加载的那一刻开始运行您的 JS 脚本。
如果您查看 CSS 解决方案可能会更好。
是的,您可以使用 JcorsLoader 之类的小型加载程序 javascript(Gzip 仅 647B)
JcorsLoader.load(
"http://xxxx/jquery.min.js",
function() {
$("#demo").html("jQuery Loaded");
},
"http://xxxx/jquery.cookie.js",
function() {
$.cookie('not_existing');
}
);
并行加载多个js并按顺序执行而不阻塞DOMReady或onload。
您可以document.write
在 inline 脚本块中使用来输出元素的 HTML,包括 inline style
。不过会很丑;你确定你不能避免整个事情吗?
编辑:更简洁的方法是document.write
使用元素 HTML 之前的 id 选择器设置元素宽度的内联样式块;这会更好地降级,但仍然避免在准备好之前访问 DOM 的任何潜在问题:
<script type="text/javascript">
var width = ...;
document.write('<style type="text/css">#myid{width:' + width + 'px;}</style>');
</script>
<div id="myid">...</div>