`
sbpya
  • 浏览: 618619 次
  • 性别: 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标签是个不稳定因素,它的影响是确定的,但影响的结果是不定的……

分享到:
评论

相关推荐

    微信小程序开发,适用于微信小程序的图片预加载组件wxapp-img-loader-master.zip

    这个组件能够帮助开发者优化用户体验,特别是在处理大量图片时,通过预先加载图片资源,避免了用户在打开页面时因图片加载延迟而产生的空白等待。 1. **微信小程序开发基础**:微信小程序的开发基于一套自定义的...

    LOTUS domino BS开发 页面元素执行顺序

    在LOTUS Domino的浏览器服务器(BS)开发中,理解页面元素的执行顺序是优化应用程序性能和解决潜在问题的关键。以下是对这一主题的详细探讨: **一、页面元素执行顺序** 1. **计算公式**:首先执行的是计算公式,...

    通过JavaScript+IFRAME实现页面分屏加载

    **JavaScript + IFRAME 实现页面分屏加载** 在网页开发中,有时我们需要将页面分割成多个部分,每个部分独立加载,以提高用户体验,减少页面整体加载时间。这就是所谓的"分屏加载"或"异步加载"。JavaScript 和 ...

    lazyload-JavaScript

    "lazyload"是指在JavaScript中实现的延迟加载策略,它只在用户滚动到视口附近的图片时才加载图片,而不是在页面初次渲染时一次性加载所有图片。这种技术尤其适用于内容丰富的网页,如博客、社交媒体或者电子商务网站...

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

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

    特效-html-css-javascript

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

    javascript经典特效---图片变化效果.rar

    在JavaScript中,我们可以通过操作DOM(Document Object Model)来改变HTML元素,包括图片元素。例如,我们可以使用`document.getElementById()`或`document.querySelector()`来选取特定的图片元素,然后通过修改`...

    html2canvas将HTML内容写入Canvas生成图片 uniapp

    4. **uniAPP滚动页面生成图片**: - 对于滚动页面,需要监听滚动事件,每次滚动到新的可视区域时,调用html2canvas并保存当前的Canvas图片,直到页面所有内容都已截取。 - 由于滚动过程中可能会有动态加载的内容,...

    js加载广告 页面加载广告

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

    ScrollReveal-元素随页面滚动产生动画

    2. **应用动画**:通过数据属性`data-sr`将动画效果应用到HTML元素上,或者在JavaScript中通过选择器手动绑定。 ```html &lt;div data-sr="enter top over 2s"&gt;Hello, world! ``` 或者 ```javascript reveal.reveal('....

    javascript经典特效---打开页面特效(二).rar

    其中包含的"打开页面特效(二).htm"文件可能是实现这些特效的HTML页面,它可能利用JavaScript代码实现了独特的页面加载和展现效果。 在JavaScript中,创建页面打开特效通常涉及以下几个核心技术点: 1. **DOM操作**...

    Html+Css+Javascript从入门到精通.pdf

    #### 第二部分:用CSS美化页面 **第十一章:引用样式表** - **样式表优势**:提高代码重用率。 - **样式表引入**:在HTML中应用外部CSS文件。 - **注释使用**:编写CSS文档的注释。 **第十二章:字体控制** - **...

    JavaScript-学习笔记.pdf

    JavaScript是一种广泛应用于网页编程的语言,它是基于对象和事件驱动的脚本语言,常用于增强网页的交互性、动态效果和数据处理能力。在学习JavaScript时,我们通常会从以下几个重要知识点入手: 1. JavaScript的...

    javascript经典特效---万能图片显示器.rar

    【标题】:“javascript经典特效---万能图片显示器.rar”指的是一个使用JavaScript编写的图片展示程序,这个程序具有广泛的适应性和灵活性,能够处理各种类型的图片显示需求。JavaScript是一种广泛用于网页和应用...

    JavaScript程序设计——DOM访问实验报告.docx

    实验报告的主题是“JavaScript程序设计——DOM访问”,其目的是深入理解和掌握DOM(Document Object Model)在JavaScript中的应用,包括文档对象的属性、方法以及使用方式。DOM是HTML和XML文档的标准化表示,允许...

    【网页设计】HTML做一个属于我的音乐页面(纯html代码)

    - **多媒体元素的使用**:在网页中加入图片、音频、视频等多媒体元素可以使网页更加生动有趣,同时也能吸引更多的用户停留。 - **JavaScript应用**:JavaScript是一种常用的脚本语言,主要用于实现网页上的动态效果...

    Web前台技术-JavaScript

    - **DOM操作**: 读取和修改HTML元素,实现页面内容的动态更新。 - **数据验证**: 在提交表单前对用户输入的数据进行验证,确保数据格式正确。 - **浏览器检测**: 检测用户使用的浏览器类型和版本,以便提供最佳的...

    javaScript-DOM编程艺术

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

    jQuery页面滚动图片等元素动态加载实现

    本文将详细讲解如何使用jQuery实现页面滚动时图片和其他元素的动态加载,以此来降低初次加载页面时的数据量。 首先,jQuery是一个非常流行的JavaScript库,它简化了DOM操作、事件处理和动画等功能。在实现页面滚动...

    基于HTML旅游网站项目的设计与实现——千岛湖旅游景点网站模板(6个页面)HTML+CSS+JavaScript

    - **图片插入**:在合适的位置插入图片,增强页面美观度。 - **文字样式调整**:根据需要调整文字的大小、颜色等。 #### 3. 表单页面 - **表单元素**:使用HTML的`&lt;form&gt;`标签以及`&lt;input&gt;`等元素构建表单。 - **...

Global site tag (gtag.js) - Google Analytics