本文可参考以下网址:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dndude/html/dude1201.asp
http://msdn.microsoft.com/library/default.asp?url=/workshop/author/perf/perftips.asp
(六)、 网页加速之进阶下篇
循环控制多个动画
说到制作动画效果,当然离不开定时器的运用。通常的方法就是使用WINDOW.SETTIMEOUT来不断地定位页面上的元素。但是,如果页面上有多个动画要显示,是不是就要设定多个定时器呢?答案是NO!原因很简单:定时器功能将消耗掉大量宝贵的系统资源。可是我们仍能在页面上控制多个动画,技巧就是使用一个循环。在循环中根据不同的变量值控制相应动画的位置,整个循环中只使用一个WINDOW.SETTIMEOUT()函数调用。
VISIBILITY快于DISPLAY
让图画时隐时现会创造很有趣的效果,有2种方法可以实现这个目的:使用CSS的VISIBILITY属性或者DISPLAY属性。对于绝对位置元素,DIAPLAY和VISIBILITY具有同样的效果。两者的区别在于:设置为DISPLAY:NONE的元素将不再占用文档流的空间,而设置为VISIBILITY:HIDDEN的元素仍然保留原位置。
但是如果要处理绝对位置的元素,使用VISIBILITY会更快。
从小处着手
编写DHTML网页的一个重要提示是:从小处着手。初次编写DHTML页面时,一定不要试图在页面中使用你了解到的全部DHTML功能。每次可以只使用一个单一的新特征,并且仔细地观察由此产生的变化。如果发现性能有所下降,就可以快速地找到为什么。
脚本的DEFER化
DEFER是脚本程序强大功能中的一个“无名英雄”。你可能从没有使用过它,但是看完这里的介绍后,相信你就离不开它。它告诉浏览器SCRIPT段包含了无需立即执行的代码,并且,与SRC属性联合使用,它还可以使这些脚本在后台被下载,前台的内容则正常显示给用户。
最后请注意两点:
1、不要在DEFER型的脚本程序段中调用DOCUMENT.WRITE命令,因为DOCUMENT.WRITE将产生直接输出效果。
2、而且,不要在DEFER型脚本程序段中包括任何立即执行脚本要使用的全局变量或者函数。
保持同一URL的大小写一致性
我们都知道UNIX服务器是大小写敏感的,但是你知道吗:INTERNET EXPLORER的缓冲区也是区别对待大小写字符串的。因此,作为WEB开发者,一定要记住保持相同链接的URL字符串在不同位置的大小写的一致性。否则,就会在浏览器的缓冲区中存放同一位置的不同文件备份,也增加了下载同一位置内容的请求次数。这些都无疑降低了WEB访问效率。所以请谨记:同一位置的URL,在不同页面中请保持URL字符串的大小写一致性。
让标记有始有终
自己编写或者查看他人的HTML代码时,我们一定都遇到过标记有头无尾的情况。比如:
<P>有头无尾标记举例
<UL>
<LI>第一个
<LI>第二个
<LI>第三个
</UL>
很明显,上面的代码中缺少三个</LI>结束标记。但是这并不妨碍它的正确执行。在HTML中,这样的标记还有一些,例如FRAME、IMG和P。
可是请不要偷懒,请将结束标记写完整,这样做不仅使HTML代码格式规范,更可以加速页面的显示速度。因为INTERNET EXPLORER将不会花费时间判断和计算段落或者列表项目在哪里结束。
<P>有头有尾标记举例</P>
<UL>
<LI>第一个</LI>
<LI>第二个</LI>
<LI>第三个</LI>
</UL>
OK,以上列举了有关加速HTML页面的10个处理技巧,描述这些很简单,但是只有真正领会并掌握其中的本质,并且举一反三,才会编写出更快、更好的程序。
分享到:
相关推荐
本篇将深入探讨C#的高级进阶知识,包括泛型、反射、LINQ、设计模式以及多线程技术,并浅析如何进行百万级数据库优化。 **一、泛型** 泛型是C#中的一个重要特性,它允许我们在不指定具体数据类型的情况下定义方法、...
根据提供的标题“Java语言程序设计-进阶篇(原书第8版)”,我们可以推测这本书主要聚焦于Java编程语言的高级应用与实践。虽然描述部分为空白,但是结合标题和标签,可以推断出该书内容涉及Java语言的深层次理解和实际...
- **I/O篇**(上、下):阐述了如何设置正确的I/O约束,以确保信号完整性和设计性能。 3. **Tcl在Vivado中的应用**:介绍了如何使用Tcl脚本来自动化Vivado的工作流程,提高效率。 4. **用Tcl定制Vivado设计实现流程...
本教程是Axure的高级篇进阶教程,旨在帮助用户深入理解和掌握Axure的功能,提升产品设计与需求分析的能力。 1. **Axure 9 的新特性** - Axure 9带来了全新的界面设计,提供了更友好的用户体验,支持自定义快捷键,...
本篇文章将深入探讨自定义View的进阶知识,以帮助开发者更好地理解和运用这一技术。 首先,理解自定义View的基础是至关重要的。自定义View通常涉及到以下几个核心概念: 1. **继承自View或其子类**:自定义View...
本篇文章将深入探讨CoreMotion框架的使用方法,包括其核心类的介绍以及push和pull两种数据获取模式的实现。 1. **CoreMotion框架概述** CoreMotion框架是Apple的运动数据API,它可以获取到设备的运动数据,包括...
在本篇文章中,我们将会针对TensorFlow进阶技术中的张量限幅技术进行深入的讲解和分析。张量限幅技术是深度学习训练过程中不可或缺的一环,它主要解决在训练过程中出现的梯度爆炸和梯度消失问题,从而使得模型能够...
进阶篇的知识点涵盖: 1. 事务:理解事务的ACID属性(原子性、一致性、隔离性和持久性),以及在MySQL中如何开始、提交和回滚事务。 2. 事务处理:掌握事务隔离级别,如读未提交、读已提交、可重复读和串行化,以及...
在MATLAB的进阶编程技巧中,有很多实用的功能和方法可以帮助用户提高代码效率,实现复杂任务。本篇文章将详细探讨19个MATLAB高级编程技巧,旨在帮助你提升MATLAB编程能力。 1. **数组操作与向量化**:MATLAB支持...
《算法竞赛专题解析--搜索进阶(2)剪枝1》这篇文章主要探讨了在算法竞赛中,如何通过剪枝技术优化搜索算法,提高解决问题的效率。剪枝是搜索算法中的重要优化策略,它通过减少不必要的搜索空间来加速算法的运行。文章...
标题《NI发布进阶版分布式设备大规模在线监控方案.pdf》指出,美国国家仪器公司(NI)推出了新一代的分布式设备在线监控软件解决方案,这个方案聚焦于工业物联网(IIoT)的设备监控领域。该方案旨在帮助企业深入掌握...
#### 三、SQL Server调优系列进阶篇 ##### 1. 查询优化器的运行方式 - **查询优化器**:负责确定执行查询的最佳方法,包括选择最佳的索引、连接策略等。 - **成本模型**:用于评估不同查询计划的成本,以选择最...
这个中级篇下的教程可能涵盖了STM32在进阶应用中的诸多方面,包括但不限于系统配置、中断处理、定时器操作、串行通信、硬件加速器的使用等。 一、系统配置 在STM32的中级学习中,了解如何配置系统时钟至关重要。STM...
《米联ZYNQ裸机篇2019版》是针对Xilinx ZYNQ系列处理器的嵌入式开发教程,旨在提供一个经典且全面的裸机编程实例讲解。ZYNQ芯片是Xilinx公司推出的基于ARM Cortex-A9双核处理器的可编程系统芯片(System-on-Chip,...
4. 满分之路下: - 容斥与抽屉原理:在计数问题中应用容斥原理和抽屉原理。 - 除法取模问题:讲解处理除法和取模运算的技巧。 - 组合数取模类问题:介绍计算组合数并模运算的高效方法。 - 欧拉降幂和矩阵快速幂...
"零死角玩转STM32+初级篇+中级篇+系统篇"是一套全面的学习资源,旨在帮助初学者和进阶者深入理解并熟练掌握STM32的开发应用。 初级篇通常会涵盖以下知识点: 1. **STM32基础知识**:介绍STM32系列的芯片特性,如...
同时,需警惕人口老龄化加速导致社保费收入下滑,以及局部地区社保缺口加大可能引发的地方财政压力。 【总结】 社会保险基金是我国社会保障体系的重要组成部分,面对挑战,我国正逐步推动改革,以保证基金的可持续...
教程分为三个阶段:“删删减减入门篇”、“告别小白基础篇”和“完全定制进阶篇”。 删删减减入门篇: 这个阶段是最简单的定制教程,用户只需要在计算机上预装WINRAR压缩工具即可实现个性化修改。用户需要下载一版...
【编程珠玑番外篇-G. 程序员心底的小声音】这篇文章主要探讨了程序员在编程学习和成长过程中的不同阶段以及如何从中级水平晋升到高级水平的问题。作者将程序员分为新手、高手和中手三个层次,并指出,中手程序员通常...