预加载JavaScript/CSS但不执行

简介: 先罗列一些预加载JavaScript和CSS的方法(欢迎补充): 1、动态创建节点 2、使用ajax请求 3、使用iframe 4、借用flash去请求资源 5、new Image().src = ‘xxx’;   好吧,一个方案一个方案来分析一下(要求是不允许执行Javascript...

先罗列一些预加载JavaScript和CSS的方法(欢迎补充):

1、动态创建节点

2、使用ajax请求

3、使用iframe

4、借用flash去请求资源

5、new Image().src = ‘xxx’;

 

好吧,一个方案一个方案来分析一下(要求是不允许执行Javascript和应用CSS,以免消耗系统资源):

 

1、支持跨域,但请求后脚本会执行、样式会进行渲染,不符合要求 <排除掉>

2、不支持跨域,在静态资源部署在CDN上时有些麻烦 <排除掉>

3、这个要加载iframe就比较浪费了,资源下载了也会执行或应用,而且不太好共用(资源还得在页面写死了,需要预加载不同的资源还得来几个页面或是使用参数的形式,太不灵活了) <排除掉>

4、这个浏览器得先支持swf,然后还要考虑放文件根目录下放crossdomain.xml文件,还得与JS进行相互的调用(也可能不调,初始化的时候把要请求的资源作为参数传进去)。

可是可以,感觉有点麻烦,而且得花精力另写flash,而且还得维护它 <排除掉>

 

好吧,就只剩下最后一种了,光IE行,其它不行,怎么办?

本文的原文是有出处的,可以点击这里查看:www.phpied.com/preload-cssjavascript-without-execution/

 

在非IE中发现动态创建object元素然后附加到body上可以达到与IE中使用new Image()的效果<终于有了一根救命的稻草了>

 

直接上代码了:

window.onload = function () {

    var i = 0,
        max = 0,
        o = null,

        // list of stuff to preload
        preload = [
            'http://tools.w3clubs.com/pagr2/<?php echo $id; ?>.sleep.expires.png',
            'http://tools.w3clubs.com/pagr2/<?php echo $id; ?>.sleep.expires.js',
            'http://tools.w3clubs.com/pagr2/<?php echo $id; ?>.sleep.expires.css'
        ],
        isIE = navigator.appName.indexOf('Microsoft') === 0;

    for (i = 0, max = preload.length; i < max; i += 1) {

        if (isIE) {
            new Image().src = preload[i];
            continue;
        }
        o = document.createElement('object');
        o.data = preload[i];

        // IE stuff, otherwise 0x0 is OK
        //o.width = 1;
        //o.height = 1;
        //o.style.visibility = "hidden";
        //o.type = "text/plain"; // IE 
        o.width  = 0;
        o.height = 0;

        // only FF appends to the head
        // all others require body
        document.body.appendChild(o);
    }

};

 

这个例子的测试页面,可以点击这里查看:http://phpied.com/files/object-prefetch/page1.php?id=1

 

 

要查看new Image().src为何不能在FF达到预期的效果,可以查原文的”Comments”

 

 

看来还有更多的”元素”需要我们去挖掘了 :)

目录
相关文章
|
4月前
|
移动开发 前端开发 JavaScript
征信报告修改器,征信报告生成器,制作软件无痕修改软件【js+html+css】
本项目为信用评分模拟器教学工具,采用HTML5实现,仅供学习参考。核心功能通过JavaScript构建,包含虚拟数据生成、权重分配及信用因素分析(如还款记录、信用使用率等)。
|
4月前
|
存储 自然语言处理 前端开发
抖音快手小红书虚拟评论截图生成器,模拟对话制作工具,html+js+css
这是一款纯前端实现的多平台虚拟评论生成器,支持抖音、快手、小红书风格,适用于产品演示与UI设计。采用Vanilla JS与Flexbox布局,利用IndexedDB存储数据,CSS Variables切换主题。
|
4月前
|
前端开发 JavaScript
个人征信电子版无痕修改, 个人信用报告pdf修改,js+html+css即可实现【仅供学习用途】
本代码展示了一个信用知识学习系统的前端实现,包含评分计算、因素分析和建议生成功能。所有数据均为模拟生成
|
4月前
|
存储 前端开发 安全
病历单生成器在线制作,病历单生成器app,HTML+CSS+JS恶搞工具
本项目为医疗病历模拟生成器,旨在为医学教学和软件开发测试提供数据支持,严格遵守《医疗机构病历管理规定》。
|
4月前
|
存储 前端开发 JavaScript
仿真银行app下载安装, 银行卡虚拟余额制作app,用html+css+js实现逼真娱乐工具
这是一个简单的银行账户模拟器项目,用于学习前端开发基础。用户可进行存款、取款操作,所有数据存储于浏览器内存中
|
4月前
|
前端开发 容器
处方单图片生成器, 处方单在线制作免费,js+css+html恶搞神器
这是一个电子处方模拟生成系统,使用html2canvas库实现图片导出功能。系统生成的处方单包含多重防伪标识,并明确标注为模拟数据,仅供学习
|
4月前
|
前端开发
个人征信PDF无痕修改软件,个人征信模板可编辑,个人征信报告p图神器【js+html+css仅供学习用途】
这是一款信用知识学习系统,旨在帮助用户了解征信基本概念、信用评分计算原理及信用行为影响。系统通过模拟数据生成信用报告,涵盖还款记录
|
4月前
|
前端开发 JavaScript 容器
制作b超单生成器, 假怀孕b超单图片制作, p图医院证明【css+html+js装逼恶搞神器】
本资源提供一个适合用于熟人之间恶搞的工具,效果逼真,仅供学习参考与娱乐。包含前端技术学习要点:语义化布局、响应式设计、Flexbox、图片自适应

热门文章

最新文章