什么是非jQuery相当于$(document).ready()
?
我有一个html页面,其中包含一些预呈现的内容和一些未呈现的内容.我想立即显示预渲染的内容,然后开始渲染剩余的内容.我没有使用jQuery.
请参阅以下代码段.我曾经尝试这样做的各种方式,包括结束标记之前注入我的脚本,并提供我的脚本来填充DOM的回调window.onload
,document.body.onload
和document.addEventListener('DOMContentLoaded')
.在每种情况下,在呈现其余内容之前,页面不显示预呈现的内容.
<html><head></head>
<body>
<header>What it is, my doge?</header>
<div id="main"></div>
<script>
var main = document.getElementById('main');
for (var i = 0; i < 500; i++)
main.innerText += new Date();
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
<html><head></head>
<body>
<header>What it is, my doge?</header>
<div id="main"></div>
<script>
var main = document.getElementById('main');
document.body.onload = function() {
for (var i = 0; i < 500; i++)
main.innerText += new Date();
};
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
<html><head></head>
<body>
<header>What it is, …
Run Code Online (Sandbox Code Playgroud)我有一个脚本,可以在网页生命周期的任何阶段加载.加载脚本时,它必须运行initialize()方法.
我希望这个函数在"onload"事件上运行,但是我不能确定页面还没有加载,即"onload"还没有被解雇.
理想情况下,我的脚本看起来像这样:
var _initialize = function() { ...};
if(window.LOADED)
_initialize();
else if (window.addEventListener)
window.addEventListener('load', _initialize, false);
else if (window.attachEvent)
window.attachEvent('onload', _initialize);
Run Code Online (Sandbox Code Playgroud)
有没有这样的window.LOADED或document.LOADED变量或类似的东西?
谢谢,谢恩
我想把我的javascript代码放在head而不是body中,但是由于head在html文档中的body部分之前加载,我的代码变得无用,因为所有选择器都变得未定义.
在jquery我可以$(document).ready
用来克服这个问题,但是我不想使用jquery,我想知道在javascript中是否有这个解决方案.
我试过了:
if(document.readyState === "complete") {/*my javascript code */}
Run Code Online (Sandbox Code Playgroud)
和
window.onload = function(){/*my javascript code */}
Run Code Online (Sandbox Code Playgroud)
但两者都不起作用,有什么建议吗?提前致谢.
HTML:
<div id="section" onClick="shout()">test</div>
Run Code Online (Sandbox Code Playgroud)
JAVASCRIPT:
window.onload=function(){
function shout(){
var str = document.getElementById("section").innerHTML;
alert(str);
}
}
Run Code Online (Sandbox Code Playgroud) 我正在构建一个单页应用程序,它通过 ajax(预)加载不同页面的内容。当用户导航时,应用程序用新内容(ajax 数据)替换特定标签内的旧内容。这个新内容可以是例如包含文本和图像的文章。
我的问题是:在替换内容并加载新内容的每个外部资源后,是否会触发事件?就像“DOM 准备好”来刷新 DOM?
我正在关注一个爱好项目的css文件:
normalize.css
main.css
viewports.css
bigFile.css
现在normalize.css
,main.css
&viewports.css
是在整个网站的每次访问页面上加载的3个文件。但是bigFile.css
包含许多在网站内部页面中使用的CSS样式。现在,我将这些文件加载到首页中,index.html
如下所示:
<link rel="stylesheet" href="css/normalize.min.css">
<link rel="stylesheet" href="css/main.css">
<link href='//fonts.googleapis.com/css?family=Open+Sans:400,300,600' rel='stylesheet' type='text/css'>
Run Code Online (Sandbox Code Playgroud)
我已合并viewports.css
到内部main.css
,当前文件大小很好。我无法合并,bigFile.css
因为那main.css
会很大,浏览器将等待渲染它。还要注意,我将使用github页面,它将过期标头设置为几乎10分钟,从而使缓存状态对我不利。并假设用户最有可能导航到下一页。
bigfile.css
页面成功加载后,有什么方法可以加载,从而节省了下一页加载的时间。我不介意使用js解决方案,直到它在非js网站上全面恢复(例如,直到用户实际导航到下一页才加载它们)。另外,对于这样的小任务,我也不喜欢jquery。谢谢!
javascript ×7
html ×3
browser ×1
css ×1
css3 ×1
dom ×1
events ×1
jquery ×1
load ×1
singlepage ×1