javascript异步延时载入及推断是否已载入js/css文件
<html>
<head>
<script type="text/javascript">
/**=========================================**
| 异步延时载入js/css文件
| @example loadasync("http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js");
| @author liuensong@gmail.com
| @param string url js/css链接地址
| @return 新生成element对象/null
**=========================================**/
function loadasync(url){
var elt=null, head=null, type=null;
if(url){
head = document.getElementsByTagName("head")[0];
switch(url.split(".").pop()){
case "css":
elt = document.createElement("link");
elt.rel = "stylesheet";
elt.href = url;
break;
case "js":
elt = document.createElement("script");
elt.type = "text/javascript";
elt.src = url;
break;
default:
//something...
}
if(elt!=null && (typeof elt)=="object"){
head.appendChild(elt);
}
}
return elt;
}
/**=========================================**
| 推断js/css文件是否已载入
| @example isload("jquery.min.js");
| @author liuensong@gmail.com
| @param string fname js/css文件名称
| @return bool true/false
**=========================================**/
function isload(fname){
var isload = false;
var tags = {"js":"script", "css":"link"};
var tagname = tags[fname.split(".").pop()];
if(tagname != undefined){
var elts = document.getElementsByTagName(tagname);
for(i in elts){
if((elts[i].href && elts[i].href.toString().indexOf(fname)!="-1") ||
(elts[i].src && elts[i].src.toString().indexOf(fname)!="-1")){
isload = true;
}
}
}
return isload;
} //console.debug(loadasync("http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"));
//console.debug(isload("jquery.min.js"));
</script>
</head>
<body>
<a href="javascript:;" onclick="loadasync('http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js');">loadasync</a>
<a href="javascript:;" onclick="isload('jquery.min.js');">isload</a>
</body>
</html>
javascript异步延时载入及推断是否已载入js/css文件的更多相关文章
- javascript异步延时加载及判断是否已加载js/css文件
<html> <head> <script type="text/javascript"> /**======================= ...
- JavaScript使用localStorage缓存Js和css文件
对于WebApp来说,将js css文件缓存到localstorage区可以减少页面在加载时与HTTP请求的交互次数,从而优化页面的加载时间.特别是当移端信号不好高延迟时优化效果还是很显见的 下面的代 ...
- 每天一个JavaScript实例-推断图片是否载入完毕
<!doctype html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- 不得不说的JavaScript异步加载
同步加载的问题 默认的js是同步加载的,这里的“加载”可以理解成是解析.执行,而不是“下载”,在最新版本的浏览器中,浏览器对于代码请求的资源都是瀑布式的加载,而不是阻塞式的,但是js的执行总是阻塞的. ...
- Javascript 异步加载详解
Javascript 异步加载详解 本文总结一下浏览器在 javascript 的加载方式. 关键词:异步加载(async loading),延迟加载(lazy loading),延迟执行(lazy ...
- Javascript异步编程之setTimeout与setInterval详解分析(一)
Javascript异步编程之setTimeout与setInterval 在谈到异步编程时,本人最主要会从以下三个方面来总结异步编程(注意:特别解释:是总结,本人也是菜鸟,所以总结不好的,请各位大牛 ...
- 【转】Javascript异步编程之setTimeout与setInterval
Javascript异步编程之setTimeout与setInterval 转自:http://www.tuicool.com/articles/Ebueua 在谈到异步编程时,本人最主要会从以下三个 ...
- 【JS】368- 浅析JavaScript异步
一直以来都知道 JavaScript是一门单线程语言,在笔试过程中不断的遇到一些输出结果的问题,考量的是对异步编程掌握情况.一般被问到异步的时候脑子里第一反应就是 Ajax, setTimseout. ...
- 浅析JavaScript异步
一直以来都知道JavaScript是一门单线程语言,在笔试过程中不断的遇到一些输出结果的问题,考量的是对异步编程掌握情况.一般被问到异步的时候脑子里第一反应就是Ajax,setTimseout...这 ...
随机推荐
- For循环List中删除正确的方式
单线程public class Test { public static void main(String[] args) { ArrayList<Integer> list = new ...
- 最好的10本适用于初学者阅读的javaScript和jQuery书籍
现在有许多方式学习新的内容,但是对于刚开始学习和寻找真正沉迷其中的平和状态的人而言,经典的纸质书籍依旧是首选.我发现阅读一本纸质书籍会让自己远离那些在使用电脑和平板时出现的令人不安的情绪.电子书和播客 ...
- Cocos2d-x项目移植到WP8小记
Cocos2d-x项目移植到WP8小记 作者: K.C. 日期: 10/24/2013 Date: 2013-10-24 00:33 Title: Cocos2d-x项目移植到WP8小记 Tags: ...
- 内存中的static、const实现形式
最近在考虑下半年找工作的事情,看了不少面试题目,其中还是蛮有收获的,把基础好好复习了一遍.比如这个题目,static.const现形式,static和const类型的变量在写程序的时候也写了很多,不过 ...
- POJ 2888 Magic Bracelet(Burnside引理,矩阵优化)
Magic Bracelet Time Limit: 2000MS Memory Limit: 131072K Total Submissions: 3731 Accepted: 1227 D ...
- 对pymysql的简单封装
#coding=utf-8 #!/usr/bin/python import pymysql class MYSQL: """ 对pymysql的简单封装 "& ...
- CSS单词换行and断词
背景 某天老板在群里反馈,英文单词为什么被截断了? 很显然,这是我们前端的锅,自行背锅.这个问题太简单了,css里加两行属性,分分钟搞定. 1 2 word–break: keep–all; wo ...
- HDU 4670 Cube number on a tree
divide and conquer on tree. #include <map> #include <vector> #include <cstdio> #in ...
- POJ3468 A Simple Problem with Integers(线段树延时标记)
题目地址http://poj.org/problem?id=3468 题目大意很简单,有两个操作,一个 Q a, b 查询区间[a, b]的和 C a, b, c让区间[a, b] 的每一个数+c 第 ...
- A - Oulipo
A - Oulipo Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Submit S ...