会员登录 | 会员注册 | 意见建议 | 网站地图

站长资源综合门户

当前位置:首页 > 搜索引擎 > JavaScript解析:让搜索引擎看到更真实的网页

JavaScript解析:让搜索引擎看到更真实的网页

时间:2012-07-03 18:35:25   作者:   来源:   点击:

持久以来,站长们选择使用JavaScript来实现网页的动态行为,这样做的原因是多种多样的,如加快页面的响应速度、下降网站流量、隐藏链接或嵌入告白等。由于早期的搜索引擎没有相应的措置能力,致使在索引这类网页上往往呈现问题,可能无法收录有价值的资源,也可能呈现作弊。

引入JavaScript解析的目的,正是为体会决上述两方面的问题,其成果也就是使搜索引擎可以更加清晰的体会用户实际打开该网页时看到的效果。比如有些网站会将用户评论、评分等信息从网页HTML中抽离,操纵JavaScript甚至AJAX等体例在页面被打开的时候动态显示出来,早期的搜索引擎此时能措置到的页面内容就是缺失的,由此会进一步影响对该页面索引价值的判断。

要引入JavaScript解析,需要斟酌自己的设计与实现、解析速度和对系统其它方面影响等因素,本文通过一些典型的案例来阐发如何设计并实现一套网页JavaScript解析系统,并扼要介绍这样的系统对搜索引擎其它部分的作用和影响。

一、发现页面链接

一般来讲,页面链接都是以HTML中的A标签形式存在,链接URL标识表记标帜在href属性中,但实际存在着一些网站会选择更加"动态"的体例,较为常见的体例有两种:一种是动态写入或调剂A标签,另外一种是在用户点击的时候触发事件改变默认的链接打开体例。

1. 动态写入或调剂链接标签

抽象的说,网页要实现这样的效果,乃至后文描述的其它效果,与把年夜象放入冰箱极其近似,分为三步:找到要写入/修改的目标(找到年夜象),准备好要写入/修改的内容(打开冰箱门),执行写入/修改(把它放进去)。

这三步操作映射到JavaScript上,就是先后挪用三组标准的阅读器功能函数:页面元素定位、数据准备以及页面修改。那么,JavaScript解析的工作就是同样提供出这样的函数,随着被站长的JavaScript代码挪用自然的发现相应的内容和行为。

阐发至此,所需实现的函数也就根基确定了,其中较为简单的包含:

document.getElementById // 定位

document.getElementsByTagName // 定位

document.getElementsByClassName // 定位

node.[firstChild/nextSibling/previousSibling/parentNode] // 定位

document.[createElement/createTextNode] // 成立链接

node.[appendChild/insertBefore/innerHTML=?] // 写入内容

element.getAttribute, element.setAttribute // 设置属性

element.href =? // 设置属性

至于要写入的内容,多是以数组等形式保存在JavaScript种,也多是使用AJAX动态加载。前者属于JavaScript语言的内置功能,此处不再复述;后者是一个伶仃的话题,会在后文专门讨论。

2. 点击时触发事件改变默认的链接打开体例

页面这样做的原因不一,有的是为了隐藏链接,有的是为了实现弹出窗口,有的则是为了法度拼接URL,还有的是做查抄看是否应该打开链接等等。但所有这些原因都对应着同样的实现体例:添加click事件。

添加click事件的体例有三种:

1.将A标签的href属性设置为"javascript:func(…)"的形式

2.设置A标签的onclick属性,设置为onclick="js_code" 的形式

3.挪用事件绑定函数,如my_link_node.addEventListener('click', func, false)

支持这三种体例自己是较为简单的,需要注意的处所在于如何触发这样的click事件,以及如安在触发之后截获目的URL。

对触发事件而言,首先需要收集到所有可能的click事件,而后再依次触发。但对每一个要触发的click而言,实际触发之前必须先查抄其是否还存在,这是由于在其之前的click事件很可能已经把当前这个click删除失落了。

要做到截获URL,首先要实现相关的页面跳转函数,既location.href = ?,window.open等。而后通过设置一系列标记,将本次点击和页面跳转干系起来,如此也就取得了目标URL。

2、动态页面内容

页面动态内容是一种提升页面加载速度、增强网站手艺矫捷性的手段,可以将那些会改变的内容(如评论、评分等)抽离,使页面分为静态和动态两部分:静态内容可使用缓存等体例加快页面显示速度、下降网站流量;动态内容则有格局简单好生成的优势,同时也能节流流量。

另外一方面,动态内容也是加载告白和内容作弊的重要体例,最常见的就是写入iframe,这对早期搜索引擎而言有极年夜的隐蔽性。

在手艺条理上,动态页面内容所需要的工作与上一节"动态写入或调剂A标签"在很年夜水平上是相同的,这里需要增加的是经典的"document.write"体例。

分享到:

网友评论