`
sbpya
  • 浏览: 606262 次
  • 性别: Icon_minigender_1
  • 来自: 杭州,长沙
社区版块
存档分类
最新评论

HTML页面元素加载顺序研究报告(4)----用JavaScript插入图片

阅读更多

4.下面我们试试用Javascript插入图片

代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>测试图片加载顺序</title>
    <link rel="stylesheet" href="css/style.css" />
    <script src="script/main.js"></script>
</head>
<body>
    <div id="div1">
        <img src="images/Div1.jpg" /></div>
    <div id="div2">
        <img src="images/Div2.jpg" /></div>
    <div id="div3">
        <img src="images/Div3.jpg" /></div>
    <div id="script1">
    </div>
    <div id="script2">
    </div>
    <div>
        <div id="cssContainer1">
            <div id="cssContainer2" style="background-image: url('images/Css2.jpg')">
            </div>
            <script>inputImage("script2", "images/Script2.JPG")</script>
            <div id="cssContainer3">
            </div>
            <script>inputImage("script1", "images/Script1.JPG")</script>
        </div>
        <div id="cssContainer4" style="background-image: url('images/Css4.jpg')">
        </div>
        <div id="div4">
            <img src="images/Div4.jpg" /></div>
    </div>
    <div id="div5">
        <img src="images/Div5.jpg" /></div>
    <div id="div6">
        <img src="images/Div6.jpg" /></div>
    <div id="div7">
        <img src="images/Div7.jpg" /></div>
    <div id="div8">
        <img src="images/Div8.jpg" /></div>
    <div id="div9">
        <img src="images/Div9.jpg" /></div>
    <div id="div10">
        <img src="images/Div10.jpg" /></div>
    <div id="div11">
        <img src="images/Div11.jpg" /></div>
    <div id="div12">
        <img src="images/Div12.jpg" /></div>
    <style>
        #cssContainer1
        {
            background-image: url("images/Css1.jpg");
        }
    </style>
</body>
</html>

 inputImage方法是把一张图片插入一个Div中:

function inputImage(divid, imgpath) {
    var divImage = document.getElementById(divid);
    divImage.innerHTML = '<img src="' + imgpath + '" />';
}
IE7+HttpWatch:

image

这种情况用第三节的结论很容易说明:在<script>inputImage("script2", "images/Script2.JPG")</script>处,先执行脚本,加载图片Script2,然后加载在Script2之前的图片Css5(Css5是在外部Css文件中声明的,修饰的是cssContainer1的背景图片,由于后面还有内联的Style,所以这里Css5被IEAbort了)以及Css2,之后执行<script>inputImage("script1", "images/Script1.JPG")</script> 加载图片Script1,然后加载在Script1之前的图片Css3。接下来顺序加载内嵌图片以及背景图片。

FF3.0+Firebug

image

这里可以看到与IE不同,Firefox是先加载背景图片再加载脚本插入的图片。结合第三节,可以认为Firefox把脚本插入的图片和背景图片作为相同加载顺序权值的图片看待,它们之间的加载顺序按照在页面上出现的先后安排。

但有时在IE下会出现下面的情况:

image 

这是什么原因呢?

第二段代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>测试图片加载顺序</title>
    <link rel="stylesheet" href="css/style.css" />
    <script src="script/main.js"></script>
</head>
<body>
    <div id="div1">
        <img src="images/Div1.jpg" /></div>
    <div id="div2">
        <img src="images/Div2.jpg" /></div>
    <div id="div3">
        <img src="images/Div3.jpg" /></div>
    <div id="script1">
    </div>
    <div id="script2">
    </div>
    <div>
        <div id="cssContainer1">
            <div id="cssContainer2" style="background-image: url('images/Css2.jpg')">
            </div>

            <script>inputImage("script2", "images/Script2.JPG")</script>

            <div id="cssContainer3">
            </div>
        </div>
        <div id="cssContainer4" style="background-image: url('images/Css4.jpg')">
        </div>
        <div id="div4">
            <img src="images/Div4.jpg" /></div>
    </div>
    <div id="div5">
        <img src="images/Div5.jpg" /></div>
    <script>window.onload = function() { inputImage("script1", "images/Script1.JPG"); }</script>
    <div id="div6">
        <img src="images/Div6.jpg" /></div>
    <div id="div7">
        <img src="images/Div7.jpg" /></div>
    <div id="div8">
        <img src="images/Div8.jpg" /></div>
    <div id="div9">
        <img src="images/Div9.jpg" /></div>
    <div id="div10">
        <img src="images/Div10.jpg" /></div>
    <div id="div11">
        <img src="images/Div11.jpg" /></div>
    <div id="div12">
        <img src="images/Div12.jpg" /></div>
    <style>
        #cssContainer1
        {
            background-image: url("images/Css1.jpg");
        }
    </style>
</body>
</html>

这里onload闪亮登场,看表现:

FF3.0+Firebug

image

很明显,放在onload事件里加载的图片被放在最后才加载,这也很好理解。

IE7+HttpWatch:

 image

image

IE表现出了多样性,不得不认为,对于IE来说,Script标签是个不稳定因素,它的影响是确定的,但影响的结果是不定的……

分享到:
评论

相关推荐

    延迟加载js代码下载(包括页面延迟加载以及图片延迟加载)

    本篇文章将详细讲解延迟加载在JavaScript(js)和jQuery中的应用,以及如何实现页面和图片的延迟加载。 一、延迟加载的概念 延迟加载,也称为懒加载(Lazy Loading),是指在需要时才加载资源的技术。这种技术主要...

    【第八章】JavaScript【Script标签与访问HTML页面(2)】

    【第八章】JavaScript【Script标签与访问HTML页面(2)】这一主题主要涵盖了JavaScript在网页中的应用,特别是关于`&lt;script&gt;`标签的使用以及如何通过JavaScript来操作和访问HTML页面内容。JavaScript是一种广泛用于Web...

    Javascript在页面加载时的执行顺序.pdf

    JavaScript在页面加载时的执行顺序是网页开发中的关键概念,对于理解JavaScript如何与HTML交互至关重要。以下是关于这一主题的详细解释: 首先,我们来看在HTML中嵌入JavaScript的几种常见方式: 1. **内联脚本**...

    javaScript-javascript-初级到高级-笔记.docx

    内部使用时,JavaScript代码可以直接写在HTML文件的`&lt;script&gt;`标签中,通常建议将定义的函数放在`&lt;head&gt;`部分,而调用函数的代码放在`&lt;body&gt;`部分,以确保在元素加载完成后执行。例如: ```html &lt;html&gt; &lt;title&gt;My ...

    达内 7_HTML-CSS-JAVASCRIPT

    例如,我们可以用JavaScript改变HTML元素的样式,或者在用户点击按钮时加载新的数据。 在达内的这门课程中,学习者可以期待涵盖以下关键知识点: 1. HTML基础:包括基本标签的使用、表格、表单、链接和多媒体元素...

    卫班科技---JavaScript自动加载定时器

    卫班科技---JavaScript自动加载定时器,这个是一个页面加载时。自动执行定时器的JavaScript案例。

    特效-html-css-javascript

    通过JavaScript,我们可以监听用户的动作,比如点击按钮,然后执行相应的操作,如改变内容、加载新数据或显示隐藏元素。JavaScript库和框架如jQuery、React、Vue和Angular等,为开发者提供了更高级的功能,例如DOM...

    js加载广告 页面加载广告

    通常,广告服务器会提供一段JavaScript代码,开发者将其插入到网页的HTML中合适的位置,这段代码会在页面加载完成后执行,请求并渲染广告。 2. **广告加载流程** - **请求广告**: 当用户打开页面时,JavaScript...

    Pegasus-Javascript库数据加载速度更快

    Pegasus-Javascript库数据加载速度更快

    javascript实例应用---页面特效类.rar

    通过学习和研究这些实例,你可以了解到如何使用JavaScript与HTML、CSS协同工作,创建出动态且引人入胜的页面效果。 在实践中,理解并掌握JavaScript的核心概念,如DOM操作、事件处理、定时器、闭包以及异步编程等,...

    JavaScript---仿chinaz站长站首页的导航菜单

    在JavaScript中,我们可以通过改变元素的`background-image`属性来更改这些图像,或者使用CSS伪元素(如`:before`和`:after`)结合`content`属性插入图标。 在实际开发中,为了代码的可维护性和复用性,JavaScript...

    javascript实例应用---图片特效类.rar

    除了上述基本技术,还可能涉及到事件监听(如鼠标点击、滚动等)、AJAX异步加载图片、响应式设计以适应不同设备屏幕等高级技巧。学习和掌握这些JavaScript图片特效不仅可以提高网页的互动性和美观度,也是提升前端...

    JavaScript多图相册-注册页面

    多图相册的实现则涉及到图片的动态加载和显示,可能利用JavaScript数组存储图片信息,然后通过遍历数组动态创建并插入图片元素。还可以添加预览功能,让用户在点击缩略图时可以查看大图。 综上所述,"JavaScript多...

    javaScript-DOM编程艺术

    通过JavaScript,我们可以找到页面上的特定元素,改变它们的属性,添加新的元素,甚至删除现有元素。例如,使用`document.getElementById()`可以获取ID为特定值的元素,`element.innerHTML`可以更改元素内的HTML内容...

    页面加载中js 页面加载中js 页面加载中js

    4. **图片预加载**:`loading.gif`可能是一个预加载指示器,用于在页面主要内容加载之前显示,以告知用户页面正在加载。预加载可以使用JavaScript实现,预先请求图片或其他资源,以便在用户实际交互时能快速显示。 ...

    使用webview加载本地html页面,并处理html页面中的javascript事件

    NULL 博文链接:https://android-zhang.iteye.com/blog/1659943

    聂微东-页面滚动图片加载

    总结起来,"聂微东-页面滚动图片加载"是一个关于利用JavaScript在网页中实现延迟加载图片的技术,这种技术提高了网页性能,优化了用户体验,特别是在内容丰富的网站如QQ空间中。通过监听滚动事件、计算元素位置和...

    DHTML 手册--------HTML,JAVASCRIPT深入解析

    6. JavaScript性能优化:如避免阻塞渲染的脚本插入方法,合理使用闭包,减少全局变量等。 7. JavaScript库与框架:可能会介绍jQuery和其他流行库,以及React、Vue、Angular等前端框架的基本用法。 通过这本书的...

    网站设计综合开发-JavaScript.doc

    - 动态文本:JavaScript可以动态改变HTML页面上的文本内容,例如通过`document.write()`函数将变量插入到HTML元素中。 - 网页特效:JavaScript能够实现各种视觉效果,如滑动菜单、动画等,提升用户体验。 - 事件...

    用dreamweaver做的个人主页(html\javascript)

    在本项目中,“用dreamweaver做的个人主页(html\javascript)”是一个使用Adobe Dreamweaver创建的个人网站示例,主要包含HTML和JavaScript技术。Dreamweaver是一款强大的网页设计工具,它支持直观的可视化编辑和代码...

Global site tag (gtag.js) - Google Analytics