監(jiān)理公司管理系統(tǒng) | 工程企業(yè)管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 造價(jià)咨詢管理系統(tǒng) | 工程設(shè)計(jì)管理系統(tǒng) | 甲方項(xiàng)目管理系統(tǒng) | 簽約案例 | 客戶案例 | 在線試用
X 關(guān)閉
鷹潭網(wǎng)站建設(shè)公司

當(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)局部

發(fā)布:2007-03-31 14:57    編輯:泛普軟件 · xiaona    [打印此頁(yè)]    [關(guān)閉]
相關(guān)文章:
鷹潭OA
聯(lián)系方式

成都公司:成都市成華區(qū)建設(shè)南路160號(hào)1層9號(hào)

重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓

咨詢:400-8352-114

加微信,免費(fèi)獲取試用系統(tǒng)

QQ在線咨詢

泛普鷹潭網(wǎng)站建設(shè)公司其他應(yīng)用

鷹潭軟件開發(fā)公司 鷹潭門禁系統(tǒng) 鷹潭物業(yè)管理軟件 鷹潭倉(cāng)庫(kù)管理軟件 鷹潭餐飲管理軟件 鷹潭網(wǎng)站建設(shè)公司