精华内容
下载资源
问答
  • AngularJS按需加载文件

    千次阅读 2017-07-10 13:26:22
    $ozLayLoad实现按需加载文件功能

    $ocLazyload官网: https://oclazyload.readme.io/docs/getting-started

    为什么要按需加载文件

    当一个单页应用规模越来越大,一个ng-route或者ui-router要切换的路由或状态很多而且每个都有相对应的controller文件时,如果在index.html一开始就加载上百可能甚至上千个controller文件以及对应的css文件等外联文件时,网页速度往往会因为需要加载如此庞大的数据,加载时间会变得很冗长。我们有没有想过,一开始index.html的加载可能只需要一点点的数据处理,其他的能不能在切换到那个路由的时候,再加载那个路由所对应的所有相关文件,会省去很多页面加载的时间,这样也方便代码解读及后期维护。

    $ocLazyLoad使用

    今天这篇文章主要讲解一下$ocLazyLoad.js的使用,它实现了按需加载的功能,一般和ui-router组合使用的比较多。

    安装

    在git中,输入以下代码

    bower install oclazyload 或者 npm install oclazyload

    添加依赖

    var app = angular.module("MyApp", ["oc.lazyLoad"]);

    注意,这里依赖模块的名字是固定的,"oc.lazyLoad",切记不要写错。a

    app.controller("MyController", function($ocLazyLoad) {
      $ocLazyLoad.load('testModule.js');
    });

    以上就是$ocLazyload的加载模块的简单例子。

    $ocLazyLoad加载多种类型文件

    $ocLazyLoad 可以加载模块,其他文件也是可以的, 比如controller、service、filter、css等与web app相关的文件都能加载。加载的时候要注意,你写的这些文件都是在已经存在的模块中,不然就加载不了。

    $ocLazyLoad配置

    angular.module('app', ['oc.lazyLoad']).config(['$ocLazyLoadProvider', function($ocLazyLoadProvider) {
      $ocLazyLoadProvider.config({
        // ...
      });
    }]);


    选项 类型 默认值

    debug

    boolean

    false

    events

    boolean

    false

    modules

    对象数组

    undefined

    • debug:$ocLazyLoad 会返回一个promise对象,如果有报错时,promise对象会被拒绝(rejected), 也就是说,所有的errors不会显示。如果debug设为true,$ocLazyLoad会把所有的errors放在console上显示。
    $ocLazyLoadProvider.config({
      debug: true
    });

    • events: 当你加载一个模块、js文件、css文件等时,$ocLazyLoad会广播一个事件,它默认是false,如果设为true时,则会激活它的功能。
           这些事件有:
    •  ocLazyLoad.moduleLoaded
    •  ocLazyLoad.moduleReloaded
    •  ocLazyLoad.componentLoaded
    •  ocLazyLoad.fileLoaded
    $ocLazyLoadProvider.config({
      events: true
    });
    $scope.$on('ocLazyLoad.moduleLoaded', function(e, module) {
      console.log('module loaded', module);
    });

    • modules: 预定义一个模块,在之后用。再次之前,需要注册模块名字,及其文件地址。
    $ocLazyLoadProvider.config({
      modules: [{
        name: 'TestModule',
        files: ['js/TestModule.js']
      }]
    });
    $ocLazyLoad.load('TestModule'); // will load the predefined configuration

    $ocLazyLoad作为service

    Parameter 针对本地加载器 Type Default value

    cache 

    Boolean

    true

    reconfig 

    Boolean

    false

    rerun 

    Boolean

    false

    serie 

    Boolean

    false

    insertBefore 

    Boolean

    undefined

    cache:  如果为false,为了绕开浏览器缓存,向url中追加一个时间戳
    $ocLazyLoad.load({
      cache: false,
      files: ['testModule.js', 'bower_components/bootstrap/dist/js/bootstrap.js']
    });

    reconfig: 如果重新加载模块,不会再次调用config代码块,这样可以手动操作再加载一次config代码
    $ocLazyLoad.load({
      reconfig: true,
      files: ['testModule.js', 'bower_components/bootstrap/dist/js/bootstrap.js']
    });

    rerun: 重新运行块
    $ocLazyLoad.load({
      rerun: true,
      files: ['testModule.js', 'bower_components/bootstrap/dist/js/bootstrap.js']
    });

    serie: 为true,打开平行加载文件功能
    $ocLazyLoad.load({
      serie: true,
      files: [
        'bower_components/angular-strap/dist/angular-strap.js',
        'bower_components/angular-strap/dist/angular-strap.tpl.js'
      ]
    });

    insertBefore: 默认情况下,css文件会被加载在head元素中最后一个子元素之前插入文件,这里你可以写一个选择器重写它
    $ocLazyLoad.load({
      insertBefore: '#load_css_before',
      files: ['bower_components/bootstrap/dist/css/bootstrap.css']
    });

    $ocLazyLoad作为directive

    可以在tag中,输入指令,直接加载文件或者加载参数(文件路径已经放在了参数中)
    <div oc-lazy-load="['js/testModule.js', 'partials/lazyLoadTemplate.html']">
      <!-- Use a directive from TestModule -->
      <test-directive></test-directive>
    </div>
    $scope.lazyLoadParams = [
      'js/testModule.js',
      'partials/lazyLoadTemplate.html'
    ];
    <div oc-lazy-load="lazyLoadParams"></div>

    和ui-router一起使用

    通常,$ocLazyLoad主要用于提前加载html模板所关联的文件,比如controller、css文件等,所以加载这些时,需要使用到resolve这个功能。resolve就是在这个路由或者状态被激活时,在html模板被加载之前,提前把需要的数据加载好。
    $stateProvider.state('index', {
      url: "/", 
      views: {
        "lazyLoadView": {
          controller: 'AppCtrl', 
          templateUrl: 'partials/main.html'
        }
      },
      resolve: { 
        loadMyCtrl: ['$ocLazyLoad', function($ocLazyLoad) {
                 return $ocLazyLoad.load('js/AppCtrl.js');
        }]
      }
    });
    还有一点一定要记住的是,在加载模块后一定要写这些代码,不然达不到按需加载的效果, 报错ng-areq:
    //配置动态加载
    app.config(["$provide", "$compileProvider", "$controllerProvider", "$filterProvider",
    	function($provide, $compileProvider, $controllerProvider, $filterProvider) {
    		app.controller = $controllerProvider.register;
    		app.directive = $compileProvider.directive;
    		app.filter = $filterProvider.register;
    		app.factory = $provide.factory;
    		app.service = $provide.service;
    		app.constant = $provide.constant;
    	}
    ]);
    
    
    具体原因还在查证。。。

    展开全文
  • 加载网页时弹出div

    千次阅读 2016-08-09 21:38:27
    1.利用body的onload=" " 2.写好弹出层 3.加载时会自动弹出写好的div 实例: popdiv.html 弹出div测试 修改密码

    1.利用body的οnlοad=" "

    2.写好弹出层

    3.加载时会自动弹出写好的div


    实例:

    popdiv.html

    <html>
    
    <head>
        <meta http-equiv="content-type" content="text/html; charset=utf8" />
        <title>弹出div测试</title>
        <link rel="stylesheet" type="text/css" href="./changepwd.css">
        <link rel="stylesheet" type="text/css" href="./pop.css">
    </head>
    
    <body οnlοad="showDiv()">
        <div id="popDiv" class="mydiv" style="display: none;">
            <h1 style="color: white; font-family: 黑体; margin-top: 10px; margin-bottom: 30px;">修改密码</h1>
            <div class="contact-form">
                <div class="signin">
                    <div id="pwd1">
                        <input id="oldpwd" type="password" placeholder="请输入原密码" οnblur="validate(this)" />
                    </div>
                    <div id="wrongpwd"></div>
                    <div id="pwd2">
                        <input id="newpwd1" type="password" placeholder="请输入新密码(3-15位英文及数字)" />
                    </div>
                    <div id="pwd3">
                        <input id="newpwd2" type="password" placeholder="请再次输入原密码" />
                    </div>
                    <div id="pwd4">
                        <input id="edit" type="button" value="修改" οnclick="subForm();" />
                        <input id="cancel" type="button" οnclick="closeDiv()" value="取消">
                    </div>
                </div>
            </div>
    
        </div>
        <div id="bg" class="bg" style="display: none;"></div>
        <iframe id='popIframe' class='popIframe' frameborder='0'></iframe>
    </body>
    
    <script type="text/javascript" src="./changepwd.js"></script>
    
    </html>
    pop.css

    html,body {
    	height: 100%;
    	margin: 0px;
    	font-size: 12px;
    }
    
    .mydiv {
    	filter: Alpha(Opacity = 90);
    	-moz-opacity: 0.9;
    	opacity: 0.9;
    	background-color: #0D0D0D;
    	border: 0px solid;
    	text-align: center;
    	line-height: 40px;
    	font-size: 12px;
    	font-weight: bold;
    	z-index: 999;
    	left: 45%;
    	top: 30%;
    	margin-left: -150px !important; /*FF IE7 该值为本身宽的一半 */
    	margin-top: -60px !important; /*FF IE7 该值为本身高的一半*/
    	margin-top: 0px;
    	position: fixed !important; /* FF IE7*/
    	position: absolute; /*IE6*/
    	_top: expression(eval(document.compatMode &&
                document.compatMode == 'CSS1Compat')?
                documentElement.scrollTop+ (document.documentElement.clientHeight-this.offsetHeight)/2:
    		/*IE6*/
                document.body.scrollTop+ (document.body.clientHeight- this.clientHeight)/2);
    	/*IE5 IE5.5*/
    }
    
    .bg,.popIframe {
    	background-color: black;
    	display: none;
    	width: 100%;
    	height: 100%;
    	left: 0;
    	top: 0; /*FF IE7*/
    	filter: alpha(opacity = 30); /*IE*/
    	opacity: 0.3; /*FF*/
    	z-index: 1;
    	position: fixed !important; /*FF IE7*/
    	position: absolute; /*IE6*/
    	_top: expression(eval(document.compatMode &&
                document.compatMode == 'CSS1Compat')?
                documentElement.scrollTop+ (document.documentElement.clientHeight-this.offsetHeight)/2:
    		/*IE6*/
                document.body.scrollTop+ (document.body.clientHeight- this.clientHeight)/2);
    }
    
    .popIframe {
    	filter: alpha(opacity = 0); /*IE*/
    	opacity: 0; /*FF*/
    }
    changepwd.css

    #oldpwd {
    	width: 260px;
    	height: 30px;
    }
    
    #wrongpwd {
    	color: red;
    	height: 20px;
    	line-height: 20px;
    	text-align: left;
    	float: middle;
    	margin-left: 100px;
    }
    
    #newpwd1 {
    	margin: 15px 30px 15px 30px;
    	width: 260px;
    	height: 30px;
    }
    
    #newpwd2 {
    	margin: 15px 30px 15px 30px;
    	width: 260px;
    	height: 30px;
    }
    
    #edit {
    	font-size: 25px;
    	width: 110px;
    	height: 35px;
    	background-color: red;
    	color: white;
    	border-radius: 10px;
    	border: 0px;
    	font-family: 黑体;
    	margin-right: 15px;
    }
    
    #cancel {
    	font-size: 25px;
    	width: 110px;
    	height: 35px;
    	background-color: #666666;
    	color: white;
    	border-radius: 10px;
    	border: 0px;
    	font-family: 黑体;
    	margin-right: 15px;
    }
    
    #pwd1 {
    	margin: 15px 60px 0px 60px;
    }
    
    #pwd2 {
    	margin: 0px 60px 15px 60px;
    }
    
    #pwd3 {
    	margin: 15px 60px 15px 60px;
    }
    
    #pwd4 {
    	margin-top: 40px;
    	margin-bottom: 20px;
    }
    changepwd.js

    var status = 0;
    var xmlHttp;
    function createXMLHttpRequest() {
    	// 表示当前浏览器不是ie,如ns,firefox
    	if (window.XMLHttpRequest) {
    		xmlHttp = new XMLHttpRequest();
    	} else if (window.ActiveXObject) {
    		xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    	}
    }
    function validate(field) {
    	if (field.value.trim().length != 0) {
    		// 创建Ajax核心对象XMLHttpRequest
    		createXMLHttpRequest();
    
    		var url = '/xxx?oldpwd='
    				+ field.value.trim() + '&time=' + new Date().getTime();
    
    		// 设置请求方式为GET,设置请求的URL,设置为异步提交
    		xmlHttp.open("GET", url, true);
    
    		// 将方法地址复制给onreadystatechange属性
    		// 类似于电话号码
    		xmlHttp.onreadystatechange = callback;
    
    		// 将设置信息发送到Ajax引擎
    		xmlHttp.send(null);
    	} else {
    		document.getElementById("spanUserId").innerHTML = "";
    	}
    }
    // 回调函数
    function callback() {
    	// Ajax引擎状态为成功
    	if (xmlHttp.readyState == 4) {
    		// HTTP协议状态为成功
    		if (xmlHttp.status == 200) {
    			if (xmlHttp.responseText == "0") {
    				status = 0;
    				document.getElementById("wrongpwd").innerHTML = "原密码错误";
    			} else if (xmlHttp.responseText == "1") {
    				status = 1;
    				document.getElementById("wrongpwd").innerHTML = "";
    			}
    		} else {
    			alert("请求失败,错误码=" + xmlHttp.status);
    		}
    	}
    }
    
    function showDiv() {
    	document.getElementById('popDiv').style.display = 'block';
    	document.getElementById('popIframe').style.display = 'block';
    	document.getElementById('bg').style.display = 'block';
    };
    function closeDiv() {
    	document.getElementById('popDiv').style.display = 'none';
    	document.getElementById('bg').style.display = 'none';
    	document.getElementById('popIframe').style.display = 'none';
    	document.getElementById('oldpwd').value = '';
    	document.getElementById('newpwd1').value = '';
    	document.getElementById('newpwd2').value = '';
    	document.getElementById("wrongpwd").innerHTML = "";
    
    };
    function subForm() {
    	var oldPasswd = document.getElementById("oldpwd").value;
    	var newPasswd = document.getElementById("newpwd1").value;
    	var confirmPasswd = document.getElementById("newpwd2").value;
    	alert(oldPasswd + "&" + newPasswd + "&" + confirmPasswd);
    	if (oldPasswd.length == 0) {
    		return false;
    	}
    	if (newPasswd.length == 0) {
    		return false;
    	}
    	if (confirmPasswd.length == 0) {
    		return false;
    	}
    
    	// 设置status是一个全局变量,0代表原密码输入错误,禁止提交表单
    	if (status == 0) {
    		return false;
    	}
    	alert("111");
    	$.post("/xxx", {
    		"oldPasswd" : oldPasswd,
    		"newPasswd" : newPasswd,
    		"confirmPasswd" : confirmPasswd
    	}, function(data) {
    		if (data.isResultOk) {
    			alert("修改成功,请重新登录");
    			window.location.href = "/xxx";
    		} else {
    			alert(data.resultMsg);
    		}
    	});
    
    }


    压缩文件下载:
    http://download.csdn.net/detail/zidane_2014/9599357

    展开全文
  • 前段时间因为有需要,要在div加载一个页面。但是以前没做过,不懂。于是到网上查了很多资料都没有相关的东西。后来在前辈的指点下明白了一些,现分亨给大家。首先一个页面:sub.html 这个页面我布曙在iis上。路径...

      前段时间因为有需要,要在div中加载一个页面。但是以前没做过,不懂。于是到网上查了很多资料都没有相关的东西。后来在前辈的指点下明白了一些,现分亨给大家。

    首先一个页面:

    sub.html  这个页面我布曙在iis上。路径为http://192.168.1.100:81/sub.html,这个页面里边引用了一个外部js文件。还有两个页面内函数。

    sub.js文件里边有一个函数:sub_js(){alert("sub_js()");}

     

    然后要加载该页面的div的页面。下边在获取字符串中的js或css文件时,有可能有其它的不符合规定的出现,因此这里可能解析代码不正确,如果你有好的解析方法,就给我指点指点吧。。。

     

    这个页面里边使用了dwr来读取目标页面的全部内容(以字符串形势返回,如果不懂dwr的话,可以使用其它ajax技术来得到),下边使用的是dwr框架来读取目标页面内容的java代码。

     

     

    展开全文
  • Ajax动态加载JavaScript文件

    千次阅读 2010-06-17 21:30:00
    在用启用该模块功能时,通过Ajax请求相应的JavaScript文件,然后执行该文件进行模块的加载。这里要使用JavaScript的全局函数eval,下面对其进行介绍eval( code )参数 code: 字符串,含有要计算的JavaScript表达式或...

          开发应用程序时,经常需要实现模块的按需加载:当用户点击该模块或使用模块功能前才进行加载。采用模块按需加载可以大幅度节省系统资源,对于富客户端尤甚。在用启用该模块功能时,通过Ajax请求相应的JavaScript文件,然后执行该文件进行模块的加载。这里要使用JavaScript的全局函数eval,下面对其进行介绍

    参数

    code: 字符串,含有要计算的JavaScript表达式或要执行的语句

    返回值

    计算code得到的值,如果存在的话

    异常

    SyntaxError: 说明code中没有合法的JavaScript表达式或语句

          EvalError:说明非法调用eval()

          其他异常:如果传给eval()的JavaScript代码抛出了一个异常,eval()将把这个异常传递给调用者

    描述

          eval()是全局方法,他将执行一个包含JavaScript代码的字符串。如果code含有一个表达式,eval()将计算这个表达式,并返回它的值。如果code含有一个或多个JavaScript语句,eval()将执行这些语句,如果最后一个语句有返回值,他还会返回这个是。如果code没有返回值eval()返回undefined。

     

          因此可以在eval()中实现对象的实例化或函数的声明,完成模块的动态加载。下面例子是使用Ext类库,完成在一个panel中动态加载另一个panel这样的功能。

     

    index.jsp

     

     

    loaded.js 用于被动态加载的js文件,这个文件在客户端向服务器端请求完成后被运行,相应的panel对象被实例化,完成模块加载功能

     

     

    效果图:

     

    展开全文
  • JavaScript+nodejs-加载md文件

    万次阅读 2020-08-13 15:26:31
    JavaScript+nodejs-加载md文件 案例展示 一、案例展示 案例分析 前端上传(md)文件,再利用(ajax)发送请求,并把文件数据提交给后端 后端接受文件数据并保存,然后读取文件,利用(marked)模块对数据进行转换...
  • jsp 加载swf文件

    千次阅读 2014-02-27 23:36:24
    flex生成swf文件以后需要被jsp页面调用调用的方式如下: --> 此页面上的内容需要较新版本的
  • yepnope.js 异步加载资源文件

    千次阅读 2017-06-27 08:53:31
    yepnope.js是一个能够根据输入条件来选择性异步加载资源文件的js脚本,可以在页面上仅加载用户需要的js/css。 yepnope的优点: 可以同时处理javascript以及css 能够按条件加载 Gzip后只有1.6K比大多数的资源...
  • 先看一下 Image对象的属性 里面有一个 comp
  • Ajax动态加载JavaScript文件 .

    千次阅读 2011-09-22 16:27:52
    Ajax动态加载JavaScript文件 分类: Ext Ajax 2010-06-17 21:30594人阅读 评论(0) 收藏举报  开发应用程序时,经常需要实现模块的按需加载:当用户点击该模块或使用模块功能前才进行加载。采用模块按需...
  • Three.js加载js格式文件模型

    千次阅读 2018-11-16 17:14:56
    Three.js加载js格式文件模型 代码如下 &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;三维显示案例&lt;/title&gt; &lt;script type="text/...
  • JavaScript 文件对象详解

    万次阅读 2018-07-11 11:42:13
    在浏览器中操作文件,多数情况下用到的是 File 对象,从 <input type='file' /> 元素获取,进而继续操作(例如将选择的图片展示在页面上,用ajax将文件上传至服务器等)。这里介绍在浏览器中操作文件的相关API. ...
  • 如何在js文件中写加载Applet控件(js与jsp分离技术) 我们在写代码的时候,一般喜欢将JSP和JS实现分离开,将页面部分的代码写在.jsp结尾的文件中,而将javascript代码则写在.js结尾的文件中,这样写有个好处,那...
  • XMLHttpRequest对象读取HTML文件

    千次阅读 2017-11-22 11:02:27
    通过XMLHttpRequest对象读取HTML文件,并且输出读取结果 var xmlHttp; //定义XMLHttpRequest对象 function createXmlHttpRequestObject(){ //如果在internet Explorer下运行 if(window.ActiveXObject){
  • vue动态加载SVG文件并修改节点数据

    千次阅读 2020-08-15 18:16:40
    从随着用户点击放大缩小位置不变,想到了SVG 但是需要动态加载进来呀,而且还需要需求不同节点的电流值, 从放大缩小来看, 首先想到的是 D3 在集合领导给的部分相关资料 综上: 进行了可行性的方案试探,也完成了...
  • react 加载JS文件引入全局控制参数

    千次阅读 2019-07-15 00:12:58
    根据 `BaseComponent` 定义一个属性,然后所有的React对象继承 通过DVA的modles 在window上添加全局变量 案例(在window上添加全局变量) 定义全局变量 引入全局变量 定义基础组件 header组件根据配置,选择页面的...
  • 但图片文件都相对比较大,如果一下子都显示出来,很耗时间和流量,如果都不显示,等触发一定事件时再加载,用户体验又不太好,增加用户的等待时间。 权衡一下利弊,可以有选择的利用JavaScript预加载一些需要的图片...
  • 关于JQueryAjax文件加载显示文本内容

    千次阅读 2017-06-06 23:02:09
    关于JQueryAjax文件加载显示文本内容 1.webContextPath Jsp代码: request.getContextPath()   String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request....
  • 判断一个页面是否加载了某个js文件

    千次阅读 2017-01-26 12:11:59
    加载嵌套等页面的时候,遇见了一种这样的情况,有的文件中已经加载了某个js,但是又加载了一遍,导致有些插件不能正常使用。 例如: !window.jQuery && document.write(''); Highchart不能重复...
  • ajax又不能实现文件上传,于是就开始寻找异步上传的方法,终于找到了一种学习了一下: jsp中: img id="img1" src="${pageContext.request.contextPath }/upload/img/${customer.image}.jpg" height="200" width=...
  • VueRouter之加载解析VueRouter文件

    千次阅读 2018-07-18 19:44:48
    分析的版本是VueRouter最新版本,是build之后的vue-router.js文件。 具体分析 从简单实例出发分析整个流程: html文件 &lt;!DOCTYPE html&gt; &lt;html lang="en"&gt; &lt;head...
  • Threejs加载外部glb文件模型不显示

    千次阅读 2021-01-28 11:10:50
    -- 引入global加载器 --> <script src="../js/GLTFLoader.js"></script> </head> <body> <div id="junying"></div> <!-- 加载模型文件 --> <script src="../js/JunYing2.js"></script> <script> </script> <style> ...
  • 也就是说,requireJS加载不符合AMD规范的js文件,跟我们直接在html通过标签加载,没有太大的差别。js文件中引入的全局变量,依然会存在,依然能够正常使用。shim参数能够帮助我们以AMD模块的方式,使用那些不符合AMD...
  • 因为今日一个系统采用ibatis作为持久化框架,而与...}ibatis在懒加载zz的时候,此时zz是具有一个代理对象的,所以json转化的时候函数认为这个对象是存在的,所以依然去执行get方法进行转化。但实际上是,加入此时zz实
  • 本篇文章是一篇Vue.js的教程,目标在于用一种常见的业务场景——分页/无限加载,帮助读者更好的理解Vue.js中的一些设计思想。与许多Todo List类的入门教程相比,更全面的展示使用Vue.js完成一个需求的思考过程;与...
  • 使用XMLHttpRequest对象读取HTML文件,并输出读取结果 文章目录使用XMLHttpRequest对象读取HTML文件,并输出读取结果一、运行环境二、代码三、运行效果 一、运行环境 phpStudy 下载 将下面的代码放在网页根目录下 ...
  • Unity3d动态加载及生成配置文件

    万次阅读 2013-09-04 13:37:19
    本文大部分转载,作者做了关于配置文件生成工作,但是很遗憾,关于position和rotation信息目前尚未自动生成,运行本例的朋友,需要自己手动添加位置和角度信息,否则程序会报错。 标准的json数据: { ...
  • 在html5之前在本地上传图片后预览的方法是,以前我们通常的做法是将选择的图片文件通过ajax上传至后端服务器,后端对其进行存储,再将图片的URL返回到前端,前端通过这个URL来显示图片。 而HTML5的FileReader接口...
  • 随着项目规模的增大,协作开发也越来越长见,协作开发时间久了就会遇到一个恶心的文件冲突问题。 假设一个HTML文件引用了两个外部JS文件,而这两个外部JS文件你没有修改的权限,你只有HTML文件的修改权限, 两个...
  • FileReader、Blob、File对象 1.1–FileReader对象 隶属于window对象,创建方式: var xxx = new FileReader();...==下列方法为读取数据文件,一旦开始读取,实例的 result属性都会被填充。读取失败,则 result的...
  • 加载和预加载的实现

    千次阅读 2018-03-05 17:18:19
    加载和预加载的实现提到前端性能优化中图片资源的优化,懒加载和预加载就不能不说,下面我用最简洁明了的语言说明懒加载和预加载的核心要点以及实现懒加载什么是懒加载加载也就是延迟加载; 当访问一个页面时,先将...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 91,208
精华内容 36,483
关键字:

div对象加载文件