當(dāng)前位置:工程項(xiàng)目OA系統(tǒng) > 泛普各地 > 江西OA系統(tǒng) > 鷹潭OA > 鷹潭網(wǎng)站建設(shè)公司
如何讓搜索引擎看到更真實(shí)的網(wǎng)頁(yè)
申請(qǐng)免費(fèi)試用、咨詢電話:400-8352-114
長(zhǎng)時(shí)間以來(lái),站長(zhǎng)們選擇運(yùn)用JavaScript來(lái)完成網(wǎng)頁(yè)的動(dòng)態(tài)行為,如許做的緣由是多種多樣的,如加速頁(yè)面的呼應(yīng)速度、降低網(wǎng)站流量、埋沒鏈接或許嵌入告白等。因?yàn)樵缙诘牟檎乙鏇]有響應(yīng)的處置才能,招致在索引這類網(wǎng)頁(yè)上往往呈現(xiàn)問題,能夠無(wú)法收錄有價(jià)值的資本,也能夠呈現(xiàn)作弊。引入JavaScript解析的目標(biāo),恰是為調(diào)查決上述兩方面的問題,其后果也就是使查找引擎可以更為明晰的調(diào)查用戶實(shí)踐翻開該網(wǎng)頁(yè)時(shí)看到的結(jié)果。比方有些網(wǎng)站會(huì)將用戶談?wù)摗⒃u(píng)分等信息從網(wǎng)頁(yè)HTML中抽離,應(yīng)用JavaScript甚至AJAX等辦法在頁(yè)面被翻開的時(shí)分動(dòng)態(tài)顯示出來(lái),早期的查找引擎此時(shí)能處置到的頁(yè)面內(nèi)容就是缺掉的,由此會(huì)進(jìn)一步影響對(duì)該頁(yè)面索引價(jià)值的判別。
要引入JavaScript解析,需求思索自身的設(shè)計(jì)與完成、解析速度和對(duì)系統(tǒng)其它方面影響等要素,本文經(jīng)過(guò)一些典型的案例來(lái)剖析若何設(shè)計(jì)并完成一套網(wǎng)頁(yè)JavaScript解析系統(tǒng),并扼要引見如許的系統(tǒng)關(guān)于查找引擎其它局部的效果和影響。
一、發(fā)現(xiàn)頁(yè)面鏈接
普通來(lái)說(shuō),頁(yè)面鏈接都是以HTML中的A標(biāo)簽方式存在,鏈接URL標(biāo)志在href屬性中,但實(shí)踐存在著一些網(wǎng)站會(huì)選擇更為“動(dòng)態(tài)”的方法,較為經(jīng)常見的方法有兩種:一種是動(dòng)態(tài)寫入或調(diào)整A標(biāo)簽,另一種是在用戶點(diǎn)擊的時(shí)分觸發(fā)事情改動(dòng)默許的鏈接翻開方法。
1. 動(dòng)態(tài)寫入或調(diào)整鏈接標(biāo)簽
抽象的說(shuō),網(wǎng)頁(yè)要完成如許的結(jié)果,甚至后文描繪的其它結(jié)果,與把大象放入冰箱極為相似,分為三步:找到要寫入/修正的目的(找到大象),預(yù)備好要寫入/修正的內(nèi)容(翻開冰箱門),執(zhí)行寫入/修正(把它放進(jìn)去)。
這三步操作映射到JavaScript上,就是先后挪用三組規(guī)范的閱讀器功用函數(shù):頁(yè)面元素定位、數(shù)據(jù)預(yù)備以及頁(yè)面修正。那么,JavaScript解析的任務(wù)就是相同供應(yīng)出如許的函數(shù),跟著被站長(zhǎng)的JavaScript代碼挪用天然的發(fā)現(xiàn)響應(yīng)的內(nèi)容和行為。
剖析至此,所需完成的函數(shù)也就根本確定了,個(gè)中較為簡(jiǎn)略的包羅:
document.getElementById // 定位
document.getElementsByTagName // 定位
document.getElementsByClassName // 定位
node.[firstChild/nextSibling/previousSibling/parentNode] // 定位
document.[createElement/createTextNode] // 創(chuàng)立鏈接
node.[appendChild/insertBefore/innerHTML=?] // 寫入內(nèi)容
element.getAttribute, element.setAttribute // 設(shè)置屬性
element.href = ? // 設(shè)置屬性
至于要寫入的內(nèi)容,能夠是以數(shù)組等方式保管在JavaScript種,也能夠是運(yùn)用AJAX動(dòng)態(tài)加載。前者屬于JavaScript言語(yǔ)的內(nèi)置功用,此處不再?gòu)?fù)述;后者是一個(gè)獨(dú)自的話題,會(huì)在后文專門評(píng)論。
2. 點(diǎn)擊時(shí)觸發(fā)事情改動(dòng)默許的鏈接翻開方法
頁(yè)面如許做的緣由紛歧,有的是為了埋沒鏈接,有的是為了完成彈出窗口,有的則是為了順序拼接URL,還有的是做反省看能否應(yīng)該翻開鏈接等等。但一切這些緣由都對(duì)應(yīng)著相同的完成辦法:添加click事情。
添加click事情的辦法有三種:
將A標(biāo)簽的href屬性設(shè)置為“javascript:func(…)”的方式
設(shè)置A標(biāo)簽的onclick屬性,設(shè)置為onclick=”js_code” 的方式
挪用事情綁定函數(shù),如my_link_node.addEventListener(‘click’, func, false)
支撐這三種辦法自身是較為簡(jiǎn)略的,需求留意的當(dāng)?shù)卦谟谌艉斡|發(fā)如許的click事情,以及若何在觸發(fā)之后截獲目標(biāo)URL。
關(guān)于觸發(fā)事情而言,起首需求搜集到一切能夠的click事情,然后再順次觸發(fā)。但關(guān)于每一個(gè)要觸發(fā)的click而言,實(shí)踐觸發(fā)之前必需先反省其能否還存在,這是因?yàn)樵谄渲暗腸lick事情很能夠曾經(jīng)把當(dāng)時(shí)這個(gè)click刪除失落了。
要做到截獲URL,起首要完成相關(guān)的頁(yè)面跳轉(zhuǎn)函數(shù),既location.href = ?,window.open等。然后經(jīng)過(guò)設(shè)置一系列標(biāo)記,將本次點(diǎn)擊和頁(yè)面跳轉(zhuǎn)干系起來(lái),如斯也就獲得了目的URL。
二、動(dòng)態(tài)頁(yè)面內(nèi)容
頁(yè)面動(dòng)態(tài)內(nèi)容是一種提拔頁(yè)面加載速度、加強(qiáng)網(wǎng)站技能靈敏性的伎倆,可以將那些會(huì)改動(dòng)的內(nèi)容(如談?wù)?、評(píng)分等)抽離,使頁(yè)面分為靜態(tài)和動(dòng)態(tài)兩局部:靜態(tài)內(nèi)容可以運(yùn)用緩存等辦法加速頁(yè)面顯示速度、降低網(wǎng)站流量;動(dòng)態(tài)內(nèi)容則有花樣簡(jiǎn)略好生成的優(yōu)勢(shì),還也能節(jié)流流量。
另一方面,動(dòng)態(tài)內(nèi)容也是加載告白和內(nèi)容作弊的主要辦法,最經(jīng)常見的就是寫入iframe,這關(guān)于早期查找引擎而言有極大的蔭蔽性。
在技能條理上,動(dòng)態(tài)頁(yè)面內(nèi)容所需求的任務(wù)與上一節(jié)“動(dòng)態(tài)寫入或調(diào)整A標(biāo)簽”在很大水平上是一樣的,這里需求添加的是經(jīng)典的“document.write”辦法。
該辦法是最早的JavaScript功用之一,用于向頁(yè)面直接寫入一段HTML代碼,至今仍在普遍運(yùn)用。關(guān)于該辦法,早期的查找引擎都有所支撐,但辦法根本限于字符匹配,僅能支撐最直接的寫入一個(gè)JavaScript字符串的方法,關(guān)于略微復(fù)雜的文本拼接顯得力不從心。但關(guān)于JavaScript解析而言,這段代碼畢竟是要契合言語(yǔ)標(biāo)準(zhǔn)的,因而就能做到完好支撐,處置文本拼接、前提判別和混雜代碼等各類狀況。
這里還需求評(píng)論的一點(diǎn)是嵌套的document.write,也就是經(jīng)過(guò)document.write寫入一個(gè)SCRIPT標(biāo)簽,該標(biāo)簽內(nèi)部是另一段document.write。這類問題在跳轉(zhuǎn)作弊頁(yè)面中習(xí)以為常,對(duì)其支撐就不只需求JavaScript解析,還需求HTML解析器可以支撐處置嵌套的HTML寫入功用,這里就不加以剖析了。
經(jīng)過(guò)上述辦法,無(wú)論是網(wǎng)頁(yè)的主體信息,照樣告白或其它輔佐信息,都邑被表露出來(lái),然后更好的了解站長(zhǎng)意圖。
三、網(wǎng)頁(yè)跳轉(zhuǎn)
網(wǎng)頁(yè)跳轉(zhuǎn)在有些狀況下是到達(dá)頁(yè)面結(jié)果的需要選擇,但相同會(huì)用于作弊。在技能上,多以下面兩種方法呈現(xiàn):
直接挪用頁(yè)面跳轉(zhuǎn)函數(shù)
針對(duì)查找引擎的UA、referer等挪用頁(yè)面跳轉(zhuǎn)函數(shù)
這里要完成辨認(rèn),最中心的就是完成頁(yè)面跳轉(zhuǎn)函數(shù):location對(duì)象。因?yàn)檫@是技能上獨(dú)一的JavaScript跳轉(zhuǎn)函數(shù),所以無(wú)論頁(yè)面的JavaScript若何撰寫若何混雜,最終都邑挪用該函數(shù)。因而,雖然分歧頁(yè)面的跳轉(zhuǎn)代碼看上去八門五花,但辨認(rèn)出來(lái)倒是簡(jiǎn)略的。
四、關(guān)于AJAX
AJAX是極為經(jīng)常見的網(wǎng)頁(yè)技能,基本上說(shuō)就是在網(wǎng)頁(yè)顯示時(shí)期,動(dòng)態(tài)的從互聯(lián)網(wǎng)上獲取一段數(shù)據(jù)(能夠是HTML也能夠是其它),經(jīng)由處置后加以顯示。
關(guān)于該技能,基本的任務(wù)并不在于XMLHttpRequest對(duì)象的完成,而是在于對(duì)查找引擎爬蟲架構(gòu)的影響。眾所周知,爬蟲抓取頁(yè)面,遍歷其鏈接,再順次抓取的方式設(shè)計(jì)的,其任務(wù)首要集中在調(diào)劑和節(jié)制抓取壓力上,抓取器自身較為簡(jiǎn)略,凡間不具有抓取后即時(shí)執(zhí)行JavaScript并抓取AJAX數(shù)據(jù)的才能,因而需求技能晉級(jí)方可支撐AJAX。
對(duì)抓取器的剖析超出了本文的局限,有興致的讀者可以檢查其它相關(guān)文獻(xiàn)。
總結(jié)
經(jīng)過(guò)前面的案例剖析,我們總結(jié)出了完成JavaScript解析所需求的根本任務(wù),此外再添加必然的根底性建立就能組成一套較為完好的系統(tǒng)了。這里我們?cè)俅握D一下,將其分為三個(gè)局部:
1. 在HTML解析器中嵌入JavaScript言語(yǔ)引擎,言語(yǔ)引擎可以選擇V8、SpiderMonkey等成熟的開源方案。
2. 完成所需的功用函數(shù),詳細(xì)可參考W3C的相關(guān)HTML和DOM標(biāo)準(zhǔn)。
3. 作為一個(gè)直接推論,需求收錄所謂的.js文件,這是JavaScript解析所需求“解析”的源代碼。
本文中引見的功用僅是一局部較為經(jīng)常見的JavaScript功用,要讓搜素引擎真正看到實(shí)踐的頁(yè)面還需求進(jìn)一步完成其它需求的功用,此外還需求共同對(duì)HTML、CSS、圖片等資本的支撐。
最終,關(guān)于但愿運(yùn)用JavaScript的站長(zhǎng)來(lái)說(shuō),本文給出如下建議:
1. 不要運(yùn)用過(guò)于復(fù)雜的JavaScript技能,這晦氣于查找引擎的收錄
2. 不要阻止對(duì).js文件的收錄,不然會(huì)限制JavaScript解析的才能
3. 合理的劃分站點(diǎn)的靜態(tài)局部和動(dòng)態(tài)局部
- 1網(wǎng)站制作絕對(duì)不可以犯的編程錯(cuò)誤2
- 2網(wǎng)站制作絕對(duì)不可以犯的編程錯(cuò)誤
- 3Windows Azure 網(wǎng)站上運(yùn)行 CakePHP
- 4評(píng)估企業(yè)站做的好壞的方法
- 5PHP 5中垃圾回收算法的演化
- 6企業(yè)為什么偏愛要求資深的網(wǎng)站維護(hù)單位做網(wǎng)站呢?
- 7企業(yè)網(wǎng)站的優(yōu)化現(xiàn)狀
- 8優(yōu)質(zhì)的網(wǎng)站建設(shè)方案對(duì)網(wǎng)站制作的重要性
- 9企業(yè)為什么偏愛要專門的網(wǎng)站建設(shè)企業(yè)做官網(wǎng)呢?
- 10PHP Google的translate API代碼
- 11電子商務(wù)網(wǎng)站的下一個(gè)掘金點(diǎn)-----O2O
- 12房地產(chǎn)行業(yè)微信營(yíng)銷方案3
- 13網(wǎng)站建設(shè)和營(yíng)銷帶來(lái)的經(jīng)濟(jì)效益
- 14久途教你怎么樣經(jīng)營(yíng)自己的網(wǎng)站
- 15最全Facebook圖片存儲(chǔ)架構(gòu)技術(shù)
- 16網(wǎng)站關(guān)鍵字的確定
- 17PHP性能優(yōu)化大全
- 18全站內(nèi)置SEO優(yōu)化機(jī)制
- 19 數(shù)據(jù)庫(kù)操作基類
- 20醫(yī)療設(shè)備一體化業(yè)務(wù)管理系統(tǒng)解決方案
- 21企業(yè)為什么偏愛需要資深的網(wǎng)站設(shè)計(jì)企業(yè)做官方網(wǎng)站呢?
- 22有關(guān)MySQL分頁(yè)
- 23當(dāng)前電子商務(wù)的主流貿(mào)易形態(tài)
- 24HTML5的呈現(xiàn)代表著新一波的Web順序辦法
- 25租賃網(wǎng)站功能介紹
- 26HTTPS(安全HTTP)和SSL/TLS(安全套接層/傳輸層安全)
- 27O2O已經(jīng)成為電子商務(wù)網(wǎng)站的下一個(gè)掘金點(diǎn)
- 28如何讓搜索引擎看到更真實(shí)的網(wǎng)頁(yè)
- 29Linux系統(tǒng)平安Shell劇本用于Linux系統(tǒng)的平安初始化劇本
- 30久途教你如何宣傳自己的網(wǎng)站
成都公司:成都市成華區(qū)建設(shè)南路160號(hào)1層9號(hào)
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓