四、關于AJAX
AJAX是極為常見的網頁技術,根本上說就是在網頁顯示期間,動態的從互聯網上獲取一段數據(可能是HTML也可能是其它),經過處理后加以顯示。
對于該技術,根本的工作并不在于XMLHttpRequest對象的實現,而是在于對搜索引擎爬蟲架構的影響。眾所周知,爬蟲抓取頁面,遍歷其鏈接,再依次抓取的形式設計的,其工作主要集中在調度和控制抓取壓力上,抓取器本身較為簡單,通常不具備抓取后即時執行JavaScript并抓取AJAX數據的能力,因此需要技術升級方可支持AJAX。
對抓取器的分析超出了本文的范圍,有興趣的讀者可以查看其它相關文獻。
總結
通過前面的案例分析,我們總結出了實現JavaScript解析所需要的基本工作,此外再增加一定的基礎性建設就能構成一套較為完整的系統了。這里我們再次整理一下,將其分為三個部分:
1. 在HTML解析器中嵌入JavaScript語言引擎,語言引擎可以選擇V8、SpiderMonkey等成熟的開源方案。
2. 實現所需的功能函數,具體可參考W3C的相關HTML和DOM規范。
3. 作為一個直接推論,需要收錄所謂的.js文件,這是JavaScript解析所需要“解析”的源代碼。
本文中介紹的功能僅是一部分較為常見的JavaScript功能,要讓搜素引擎真正看到實際的頁面還需要進一步實現其它需要的功能,此外還需要配合對HTML、CSS、圖片等資源的支持。
最后,對于希望使用JavaScript的站長來說,本文給出如下建議:
1. 不要使用過于復雜的JavaScript技術,這不利于搜索引擎的收錄
2. 不要阻止對.js文件的收錄,否則會限制JavaScript解析的能力
3. 合理的劃分站點的靜態部分和動態部分