`
sbpya
  • 浏览: 615613 次
  • 性别: 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. **计算公式**:首先执行的是计算公式,...

    html5实现的页面滚动图片动画加载特效源码.zip

    在图片加载特效中,可能利用localStorage预先加载图片,当用户滚动到相应位置时,图片能快速显示,无需等待网络传输。 其次,HTML5引入了新的标签,如, , , 等,它们有助于结构化网页内容,提高搜索引擎优化(SEO)...

    lazyload-JavaScript

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

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

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

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

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

    特效-html-css-javascript

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

    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('....

    HTML元素 时间间隔动画 javascript

    ### HTML元素时间间隔动画JavaScript知识点解析 #### 一、概览 在网页设计与开发过程中,为提升用户体验,增加页面的交互性和动态效果是常见需求之一。本篇内容主要介绍了如何利用HTML、CSS以及JavaScript来实现一...

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

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

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

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

    javascript经典特效---带图片下拉菜单.rar

    为避免阻塞页面渲染,JavaScript脚本应放置在HTML文档的底部,或者使用异步加载。同时,避免在DOM操作中大量循环,尽量减少对DOM的访问。 通过以上步骤,我们可以构建一个功能完整且具有视觉吸引力的带图片下拉...

    JavaScript-学习笔记.pdf

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

    javascript经典特效---图片水中倒影.rar

    6. 性能优化:如果图片较大,处理可能会消耗性能,可以考虑使用Web Workers进行异步处理,或者只在图片加载完成后才创建倒影,避免阻塞页面加载。 这个压缩包中的“图片水中倒影.htm”文件很可能包含了实现这些步骤...

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

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

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

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

    javascript经典特效---IFRAME间链接变换.rar

    1. **IFRAME的基本使用**:首先,你需要在HTML文档中创建IFRAME元素,设置`src`属性指向要加载的页面,并可以调整其宽度和高度。例如: ```html &lt;iframe id="frame1" src="page1....

    javascript经典特效---jquery仿LightBox图片盒子单击逐渐放大的图片展示的插件下载.rar

    例如,为了创建LightBox效果,可能需要在页面上动态插入一个新的层来承载放大后的图片,并根据需要隐藏或显示这个层。 5. **Ajax交互**:如果图片是从服务器动态加载的,jQuery的Ajax功能可以帮助异步获取数据。这...

Global site tag (gtag.js) - Google Analytics