HTML页面渲染及优化详解

HTML页面渲染及优化详解,第1张

页面渲染主要经过过程,具体介绍如下:

字节 → 字符 → 令牌 → 节点 → 对象模型

CSS树的生成和DOM树的生成基本是相同,如下

为什么会有CSS树

因为CSS关系也会有父子关系,就是css中常说的继承,一些样式如font-size等子元素会继承父级,所以会生成一套对应的CSS树和DOM树相对应。

通过上面的页面渲染介绍,很容易理解,重排就是重新布局页面结构,计算节点位置,而重绘就是绘制页面,只是一些样式如背景,颜色的变化等,不需要重新计算位置布局,所以 重排一定会导致重绘,但是重绘不一定导致重排。

导致页面重排主要有以下几点

上文中触发了四次重排,通过上文介绍,offsetTop,scrollTop,clientTop等属性的修改会触发重排,当浏览器获取DOM样式的时候立刻会执行一次重排,因为需要计算浏览器位置坐标,不会再继续观察下文是否还有DOM的 *** 作,下文介绍浏览器渲染机制。

这种情况看似会触发四次重排,实际只会触发一次重排,现代浏览器基本都有渲染机制,浏览器会批量将样式修改一次性执行,批量修改完后再批量获取DOM位置,实际只触发一次。

等价于

通过上文,容易理解这种情况会触发两次重排,可以使用缓存(实际是分离读写)来优化。

这种情况会触发五次重排

避免设置大量的style属性,因为通过设置style属性改变结点样式的话,每一次设置都会触发一次reflow,所以最好是使用class属性实现元素的动画,设置position属性,最好是设为absoulte或fixed,脱离文档流,这样不会影响其他元素的布局。

事件委托原理:利用事件冒泡的特性,子元素都会冒泡到父元素上,当子元素如(li)元素都绑定事件时,可以只需绑定父元素(ul)来达到相同的效果,这样不仅减少了对dom的 *** 作,减少重排或重绘,而且不用分配大量变量来保存dom,减少了内存。

委托

不要使用table布局,因为table中某个元素一旦触发了reflow,那么整个table的元素都会触发reflow。那么在不得已使用table的场合,可以设置table-layout:auto或者是table-layout:fixed这样可以让table一行一行的渲染,这种做法也是为了限制reflow的影响范围。

不要一个个修改属性,应通过一个class来修改

改为

参考文献

https://blog.csdn.net/b954960630/article/details/82317999

SEO代码优化入门的最佳HTML代码教程

我们先看下最基本的HTML标签元素

1、<!--页面注解-->

2、<html>

3、<head>

4、<title>页面标题</title>

5、<meta http-equiv=Content-Language content=zh-cn>

6、<meta http-equiv="Content-Type" content="text/htmlcharset=gb2312">

7、<meta name="keywords" content="关键词">

8、<meta name="description" content="网站描述">

9、<link href="/img/index.css" rel="stylesheet" type="text/css" />

10、<script language="JavaScript" src="/include/dedeajax2.js"></script>

11、</head>

12、<body>

13、<div>

14、<h1>页面内容标题</h1>

15、<h2>页面相关性标题</h2>

16、<h3>标题系列</h3>

17、<h4>标题系列</h4>

18、<h5>标题系列</h5>

19、<h6>标题系列</h6>

20、<img src="xxx.jpg" alt="图片说明">

21、<a href="/" title="链接说明">链接词</a>

22、<strong>重点关键词强调</strong>

23、<b>关键词强调</b><u>关键词强调</u><i>关键词强调</i>

24、</div>

25、<div>

26、版权部分关键词强调

27、</div>

28、</body>

29、</html>

********************************************************

注:在<body>..</body>标签区中的罗列,都是一些基础的HTML标签,这些标签出现的次序是可以变化的。

我们一步一步来说。

第1行的<!--页面注解-->。这个标签是用来做HTML代码注解的,很多站在这里会写上关键词,这种形式的注解在浏览器中是不会显示的,而搜索引擎可以读到。所以这个标签有的时候会成为作弊的一种形式,不要过多的用这种标签到来注明你的关键词,否则如果搜索引擎认为你是作弊的话,就惨了。

第4行<title>页面标题</title>。这是相当重要的!这里字字值千金!对于做百度seo的朋友,一定要记得这个标签可能是你是否真正能够做到排名靠前的重点,而且这个重点绝对不容忽视。标题主要注意你的用词,如果你做垃圾站,堆关键词也无所谓,如果你要做正规站点,请你正确对待,写得标准一点,不要堆关键字,保持你的主要词在这里出现三次,太多对你没有好处,对排名也不会有好处。GG并不喜欢太长的标题,百度也偶尔提到只希望在标题的前20个字里出现你的关键词。明确这些以后,还要注意的是,你的主要关键词应该在标题里越靠前越好!

第7行<meta

name="keywords"

content="关键词">。这个的用途现在权重越来越低,但是再低都是有权重的,只要认真对待,这里的词是有效果的。这里注意两点:第一、大部分人都会选择在这里写关键词不会超过三个,有的人直接只写一个,这是有好处的,每一处标签都有权重,你强调的内容越少,那么它的权重会相对更高的,所以不要写太多,否则不如不写,而让搜索引擎自己去判断你的页面关键词。第二、几乎所有的SEO专业人员都会跟你说尽量在每一个页面写不同的关键词,避免被认为是重复页面的危险。

第8行<meta

name="description"

content="网站描述">。这个是主要为了在搜索结果里出现的索引结果的,索引结果就是在百度搜索你的站的时候标题下面的摘要内容。这是一个页面的导读,用来说明网页的主要内容,当然现在的权重不高,跟keywords标签一样,不太受重视。而且现在由于搜索引擎机器人的越来越智能化,基本上已经实现整个页面的摘要内容随意出现它的索引结果里了,搜索引擎会根据你搜索的内容不同显示不同的索引。你如果要写description,就认真去写,很多人是用这里来控制搜索引擎的索引显示的,因为网站描述写得越具体,就越有可能在索引的时候出现这个标签中的内容。

第9行<link

href="/img/index.css" rel="stylesheet" type="text/css" />

这个只是一个CSS样式表的 调用方式一共分2一种直接把CSS写进HTML 一种是这种相对方便 和减少网页代码量的做法 调用CSS样式表!

第10行<script

language="JavaScript" src="/include/dedeajax2.js"></script>

这个是调用JS(javascript)文件的方法 也可以直接把JS写进HTML网页 但这样和上面的CSS调用一样 方便减少网页代码量!

本来以为JS代码搜索引擎抓取不了 但实验结果表明SE已经能够抓取JAVASCRIPT内的代码! 实验页见( /seojs.html )

第14行<h1>页面内容标题</h1>。这个标签是一个页面最重要的标签,也是搜索引擎定位这个页面的主要依据,如果你的<h1>标签里没有出现你的页面关键字,那真是的一种很大的损失,这里的权重相对于其它的在<body>区的标签来说更加重要。在HTML代码中,它的重要性仅次于<title>。很多人放弃写这个标签,对于搜索引擎是很不友好的,你可以不出现其它的强调关键词的标签,但是这个标签一定要出现,这是告诉搜索引擎你的页面用一句话应该如何表达,如果这一行字都没有,再智能化的机器人可能都会以你的<title>来决定是否用来作为一个词的排名,很多时候一个网站的页面标题都是完全一样的,因为他们程序的原因,但是如果你没有办法修改title,已经损失很大了,而如果你的页面这个<h1>标签也没有出现的话,我不知道搜索引擎会怎么样去理解一个页面,对于SEO来说,那真很糟糕的一件事情。所以,认真对待你的页面<h1>,这是很重要的,要强调的是,这个标签一个页面不要出现太多,道理很简单,太多会让别人无法确定你页面中哪一个才是最重要的,无法确定重点跟没有这个标签我觉得没有太大的分别。所以,最好只出现1次,以达到明确说明的目的。

第15行<h2>页面相关性标题</h2>。这个标签与<h1>是一样和道理,但是权重相对来说较低,如果你的页面没有<h1>,那么这个标签对于页面来说基本上就相当于<h1>的重要性了。这里面你包含的是长尾关键词相关的内容,比如你的页面做几个关键词,主词应该出现在<h1>里,那么其它的词以及你想发展的词就可以出现在<h2>里,这样来说是一种合理的安排。

而<h3>~<h6>这些标签,重要性是依次递减的,在一个页面的权重越来越低。

第20行<img

src="xxx.jpg"

alt="图片说明">。我想这个标签很多人都知道,它的作用很明确,不是指定一张图片的说明文字,让搜索引擎知道这张图片是关于什么的。比如你的图片是"周杰伦",那么你的alt="图片说明"中的"图片说明"就应该是与"周杰伦"相关的词或者句子。这样写当然也有利于你在图片搜索的结果里显示排名更前面一点,不过现在百度基本上是以页面标题作为一张图片排名的要素,当然,你的alt标记做得好,将会增加你的图片匹配度。关于图片说明的研究,以后我也许会写一篇分析性的文章,因为有<a>链接的图片里,还会有一个title标签,title与alt这两个谁重要,是有必要研究一下的。

第21行<a

href="/"

title="链接说明">链接词</a>。这是链接说明,同进也是一个页面链接的SEO重点,这里的"链接词"相当的重要,如果你跟别人交换链接,你这个词的写法是起着外链好坏与否的决定性因素的。"链接词"建议你最好写成自己的关键词,如果觉得实在不行或者怎么样,你一定要在"链接说明"里出现你的关键词。否则对于排名,你的链接做得没有太大的好处。这在SEO专业术语里还有一种叫法,叫做"google****",就是用很多站点,同时做链接到一个网站,然后所有的"链接词"都写一个词-"周杰伦菲",不久以后google就会将这个站当做"周杰伦"这个词最权威的站点,即使被那些站点链接的这个页面没有任何与"周杰伦"相关的内容,这个网站在"周杰伦"这个词的排名情况也会很好。不过google已经调整了算法,但是这样做链接肯定是有用的,一定要认真对待你的链接。还有一个重点,就是对方的链接,如果是JS调用的,你就别想在他那里得到任何权重,因为搜索引擎不会去读取JS里的内容,所以,建议大家好好做链接,不要做了链接你的站却跟没做一样。像百度空间的友情链接就是JS文件调用的,所以百度空间里的友情链接你是没有权重的。具体可以查看HTML代码,正常情况下一个页面你找不到你的网站地址在<a>..</a>标签内出现,基本上这就是属于无效链接。

第22行<strong>重点关键词强调</strong>。这个标签基实重要性仅次于<h1>,很多人都这样跟我讲。所以我也基本上认同,很确定的是它比<b>、<u>、<i>等标签要权重高。所以如果你的页面有很重要的词,而你想强调它,首先选这个<strong>标签吧,接下来相对不重要的词强调请你选<b>、<u>、<i>等标签。当然,不要用得太多了,用得太多没有重点就等于没有用了。

第27行版权部分关键词强调。我为什么要写这个?因为这个权重越来越高了,在底部版权部分,很接近版权部分出现的关键词,是一种SEO策划的手法。在这里强调你的关键词,是让你的关键词布局更加合理,而不是头部出现关键词,中部强调很多次,而底部却什么也没有关联,这个词在这个页面是否值得怀疑呢?


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7141972.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-02
下一篇 2023-04-02

发表评论

登录后才能评论

评论列表(0条)

保存