HTML-加速、再加速
web开发人员是否必须掌握复杂的组件技术才能加快html页面的访问速度?答案是:不一定!实际上,有许多关于HTML与DHTML方面的技巧,它们原理简单而且上手容易。无论是技术高超的老手,还是初涉编程的菜鸟,领会这些都十分必要。
明显HTML,暗渡“公用脚本”
减少web页面下载时间的关键就是设法减小文件大小。当多个页面共用一些成分内容时,就可以考虑将这些公用部分单独分离出来。比如:我们可以将多个HTML页面都用到的脚本程序编写成独立存在的.js文件,然后再在页面中按如下方式调用它:
<script src="myfile.js"></script>
这样,公用文件只需要下载一次,然后就进入缓冲区。等下次再次调用包含公用文件的html页面时,下载时间明显减少。
让样式表内容进入地下工作
CSS是HTML装扮器,一个漂亮的Web页面不可能没有它。HTML页面中有多种引用CSS的方法,不同的方法导致的效率也不一样。通常,我们可以将定义于<style></style>间的样式控制代码提取出来,保存到单独的.css文件中,然后在HTML页面中以<LINK>标记或者@import标记的方式进行引用:
<style>
@import url("mysheet1.css");
</style>
<link rel=Stylesheet href="mysheet2.css">
请注意2点:1、.css文件中无需包括<style>标记;2、@import和LINK标记要定义在HTML页面的HEAD部分。
宝贵内存节省两法
尽量减少HTML页面占用的内存空间是加快页面下载速度的一个有效方法。在这方面,有2个需要注意的问题:
1、使用同一种脚本语言
HTML页面离不开脚本程序的支持,我们经常会在页面中嵌入多种脚本语言,比如javascript与VBScript。但是,不知你发觉没有:这样的混合使用减慢了页面的访问速度。原因在于:要解释并运行多种脚本代码,就必须在内存中装载多种脚本引擎。所以,请尽量在页面中使用同一种脚本语言编写代码。
2、巧用IFrame
你使用过<IFRAME>标记吗?它可是一个非常美妙的功能。如果要在一个HTML文档中包含第2个页面的内容,通常的方法是使用<FRAMESET>标记。但是有了<IFRAME>,一切变得简单了。比如,开发一个文档预览页面,可以在左边放置一系列主题,在右边放置一个IFRAME,其中包含要预览的文档;当鼠标掠过左边的每一个主题链接时,就在右边建立一个新的IFRAME以预览文档。这样做,代码效率无疑是高效的,但同时导致了繁重的处理过程,最终是缓慢的速度。
没关系,我们有办法:只使用单一的IFRAME。当鼠标指向一个新主题时,只需要修改IFRAME元素的SRC属性即可。这样,任何时间内只会有一个预览文档保留在内存。
择优选用动画定位属性
每天上网浏览页面,你一定会看到许多动画效果。比如,一个可爱的小兔子在页面上来回地走动 ... 实现这个效果的核心技术就是CCS定位。通常,我们是使用element.style.left和element.style.top2个属性来达到图形定位的目的。但是,这样做会产生一些问题:left属性返回一个字符串,并且其中包含了度量单位(比如100px)。因此,要设定新的位置坐标,就必须首先对这个字符串返回值进行处理,然后才能赋值,象下面一样:
dim stringLeft, intLeft
stringLeft = element.style.left
intLeft = parseInt(stringLeft)
intLeft = intLeft + 10
element.style.left = intLeft;
你一定会感觉做这么点事情竟要编写这么复杂的代码,是否有更简洁的方法?当然有!请看这4个属性:posLeft、posTop、posWidth
和 posHeight,它们对应于相应字符串返回值的点数数值。好了,使用这些属性重新编写代码实现上面代码实现的功能:
element.style.posLeft += 10
代码短小、速度却更快!
循环控制多个动画
说到制作动画效果,当然离不开定时器的运用。通常的方法就是使用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属性联合使用,它还可以使这些脚本在后台被下载,前台的内容则正常显示给用户。
<SCRIPT DEFER>
function UsedLater()
{
// 用户与页面交互操作时才使用到的函数
}
</SCRIPT>
<SCRIPT>
// 立即要执行的脚本程序
document.write("<H1>Immediate Gratification</H1>");
</SCRIPT>
最后请注意两点:
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个处理技巧,描述这些很简单,但是只有真正领会并掌握其中的本质,并且举一反三,才会编写出更快、更好的程序。
相关文章:
ECCV 2020 | 对损失信息进行建模,实现信号处理高保真还原
编者按:信号在我们的日常生活中随处可见,例如:声音、图像、视频等。然而在信号的传输或存储过程中,往往会面临信号失真、质量变差等问题。今天这篇文章就来探讨一下信号处理中的信息丢失问题,其中包括微软亚洲研究院机…

斯坦佛编程教程-Unix编程工具(四)
emacs 下面将会简单的介绍一个叫做emacs的文本编辑器,它是由GNU组织提供的自由软件。它是一个非常优秀的编译器,并且,它能很好地和其他UNIX工具整合在一起。很多编辑器都有着非常多的理由来说明他们多优秀,但是这里我们就不讨论这…

addTwoNumbers
大神的代码好短,自己写的120多行_ 各种判断 ListNode *f(ListNode *l1, ListNode *l2) {ListNode *p1 l1;ListNode *p2 l2;ListNode *res new ListNode(0);ListNode *p3 res;int sum 0;while (p1 ! NULL || p2 ! NULL) { //这里用“或”sum / 10; //进位if (p1…

长江存储推消费级固态硬盘,Xtacking技术加持
9月10日,一直专注于to B的长江存储推出致钛系列两款消费级固态硬盘(SSD)新品,分别为PCIe接口PC005 Active和SATA接口SC001 Active,兼具强劲的性能和可靠的品质,并由Xtacking技术加持。目前两款产品现已登陆京东预售,两…

停电后,JavaScript定时器居然变慢了~
小停了会电。除了有点热,对于用笔记本的我们来说毫无损失。 不过,一件诡异的事却在这短短几分钟里遇到了:用 IE 测试 JavaScript 代码的时候,发现setInterval的频率变成了60帧/秒。 这在老版本的IE上面是再正常不过了。不过对于与…

HTML4.0标准语法--字体
◇ 标题字体(Header) <h#> ... </h#> #1, 2, 3, 4, 5, 6 <h1>今天天气真好!</h1> 今天天气真好! <h2>今天天气真好!</h2> 今天天气真好! <h3>今天天气真好!</h3>…

Tomcat 7.x热部署
由于在开发阶段,需要频繁的修改源代码,如果每次修改完代码都去重启服务器来检测效果,那简直麻烦到你想死,又耽误时间,所以,在网上找了许久,终于找到了解决办法, 特来分享 我也试了修…
机器学习中,梯度下降算法的问题引入
来源 | 动画讲编程今天讲解的内容是梯度下降算法。梯度下降算法在机器学习中的应用十分广泛,该算法的最主要目的是通过迭代的方法找到目标函数的最小值,经常用来解决线性回归和逻辑回归等相关问题。本节课主要讲解梯度下降算法解决一元线性回归问题&…

HTML4.0标准语法--文字布局
◇行的控制 段(Paragraph) (可以看作是空行) <p> 你好吗?<p>很好。 你好吗? 很好。 换行 <br> 你好吗?<br>很好。 你好吗?很好。 不换行<nobr> <nobr> 请改变您浏览器窗口的宽度&#x…

poj(2325)线段树
这里介绍另外一种解法,此题可以用线段树,可以用树状数组 其实这题求的都是下面的和左面的,线段树这种数组结构刚好可以满足,为什么呢?这里稍微解释下吧,也有助于以后的复习 看上面这个图,[1,1]&…

2017-1-7 html元素分类(1)
html元素分类结构性元素 section 在web页面应用中,该元素也可以用于区域的章节描述 header 页面主体的头部 footer 页面的底部 nav 专门用于菜单的导航、链接导航的元素 article 用于表示一篇文章的主体内用块级元素 aside 泳衣表达注记、贴士、侧栏、摘要的引用等作…

MyEclipse使用技巧小总结
1、 自动提示:窗口->首选项->Java->编辑器->内容辅助->自动激活,在下面的“Java的自动激活触发器里面填上“.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789”。 2、 加快自动提示的时间:窗口->首选项…
开放源码,华为鸿蒙HarmonyOS 2.0来了
作者 | Just出品 | AI科技大本营(ID:rgznai100)去年8月,鸿蒙HarmonyOS一经发布,在开发者群体中引发强烈反响。有人赞赏华为的战略和技术,但也有不少人质疑那只是个PPT操作系统,凡此种种,热议不断…
纯CSS实现对白框
如果一个盒子的长宽都为零,那么它的四条border就会碰到一起,变成实心的,而且每一条border都是一个三角形;我们就可以利用三角形来实现对白框的尖下巴。 通过把border上左设置为有颜色,下右设置为透明,在#de…

HTML4.0标准语法--表格
表格的色彩 表元的背景色彩和背景图象<th bgcolor#> <th background"URL"> #rrggbb 16 进制 RGB 数码, 或者是下列预定义色彩名称:Black, Olive, Teal, Red, Blue, Maroon, Navy, Gray, Lime, Fuchsia, White, Green, Purple, Silver, Yello…
能力差的程序员90%输在这点上!CTO:其实都是瞎努力!
在大数据浪潮当中,数据分析是这个时代的不二“掘金技能”。我们每一个人,每天无时无刻都在生产数据,一分钟内,微博上新发的数据量超过10万,b站的视频播放量超过600万......这些庞大的数字,意味着什么&#…

zendframwork入口关键Zend_Application.php类
为什么80%的码农都做不了架构师?>>> 推荐阅读:http://www.cnblogs.com/rexy/archive/2010/05/13/1734406.html 里面有详细的类图关系,UML图。。。 转载于:https://my.oschina.net/wufa/blog/71634
2017伊始-随笔
微信小程序发布 今天,2017年1月9日,微信的小程序发布了。我打开了美团外卖小程序,然后把美团外卖app卸载了;我打开了摩拜单车小程序,然后把摩拜单车app卸载了。有人问,这种小程序与网页版的桌面图标有什么区…

广告条随滚动条的移动而移动
文章来源:蓝色理想<html><head><title>跟随滚动条的图片</title><meta http-equiv"Content-Type" content"text/html; charsetgb2312"><STYLE mediascreen typetext/css>#floater { POSITION: abs…

使用wget在linux服务器上下载oracle软件
今天需要在远程几台服务器上安装oracle软件,本地的网络不是很好,如果同本地下载,然后再上传到服务器上比较耗时。所以就想直接在服务器上直接下载软件,这样不光速度比较快,而且还节省了很多时间。 我是这样做的。 首先…
揭秘华为AI一站式开发平台,3步构建一个AI模型 | 华为昇腾师资培训沙龙西安场...
2018 年,在第三届 HUAWEI CONNECT(华为全联接大会)上,华为首次公布了 AI 战略与全栈全场景 AI 解决方案,其中包含全球首个覆盖全场景人工智能的华为昇腾(Ascend)系列处理器以及基于华为昇腾全栈…

PYTHON黑帽编程1.5 使用WIRESHARK练习网络协议分析
Python黑帽编程1.5 使用Wireshark练习网络协议分析 1.5.0.1 本系列教程说明 本系列教程,采用的大纲母本为《Understanding Network Hacks Attack and Defense with Python》一书,为了解决很多同学对英文书的恐惧,解决看书之后实战过程中遇…

20种看asp源码的方法及工具
作者:欧杨飘雪 http://blog.csdn.net/flyingsnowy/众所周知windows平台漏洞百出,补丁一个接一个,但总是补也补不净。我把我所知道的20种看asp源码的方法总结了一下,并且用c#写了个应用程序来扫描这些漏洞,发现虽然大…
关注度越来越高的行人重识别,有哪些热点?
来源 | HyperAI超神经责编 | Carol封图 | CSDN付费下载自视觉中国在茫茫人海中,你能不能一眼就找到想找的那个人?如今,这个任务对于计算机来说,可能是小菜一碟了。而这得益于近年行人重识别技术的飞速发展。行人重识别࿰…

《QTP自动化测试进阶》(1)
学习《QTP自动化测试进阶》第一章。 采用不同的项目开发模型对自动化测试有不同的影响。 (1)瀑布模型:瀑布模型在需求定义方面做得很好,这对自动化测试是有益的,包括可以尽早选择合适的自动化测试策略,让自…

JNDI概述(转载)
JNDI是 Java 命名与目录接口(Java Naming and Directory Interface),在J2EE规范中是重要的规范之一,不少专家认为,没有透彻理解JNDI的意义和作用,就没有真正掌握J2EE特别是EJB的知识。那么,JNDI…
怎样用Python控制图片人物动起来?一文就能Get!
作者 | 李秋键责编 | 李雪敬头图 | CSDN 下载自视觉中国出品 | AI科技大本营(ID:rgznai100)引言:近段时间,一个让梦娜丽莎图像动起来的项目火遍了朋友圈。而今天我们就将实现让图片中的人物随着视频人物一起产生动作。…

Directx11教程(61) tessellation学习(3)
现在我们看看在不同tess factor的情况下,三角形是如何细分的?(这儿三条边和内部tess factor值是一样的,而且partitioning("integer")) 下面8张图是三角形在tess factor 1到8的情况下的细分细节: 因为TS阶段是硬件自己做…

HTML語法大全
作者:闪吧標籤 , 屬性名稱 , 簡介 <! - - ... - -> 註解 <!> 跑馬燈 <marquee>...</marquee>普通捲動 <marquee behaviorslide>...</marquee>滑動 <marquee behaviorscroll>...</marquee>預設捲動 <marquee beh…
php相关书籍视频
虽然如今web领域,PHP JSP .NET 并驾齐驱,但PHP用的最广,原因不用我多说。 首先发一个PHP手册,方便查询,这个肯定是学PHP必备的。 下载地址:http://u.115.com/file/aq3e5sv9PHP100的视频教程,这个…