介紹
這里所描述的過(guò)程將使你能夠創(chuàng)建一個(gè)簡(jiǎn)單的基于jQuery / XML的解析器和搜索機(jī)制。此過(guò)程將通過(guò)一個(gè)AJAX請(qǐng)求檢索XML,然后在jQuery中分析數(shù)據(jù),為搜索機(jī)制做準(zhǔn)備。該解決方案將基于不區(qū)分大小寫(xiě)的全部或部分關(guān)鍵字匹配地返回結(jié)果。來(lái)自于關(guān)鍵字搜索的返回結(jié)果設(shè)置將被格式化為一個(gè)直接鏈接到相應(yīng)網(wǎng)站的超鏈接。jQuery搜索方法非常類(lèi)似于Mike Endale的一個(gè)項(xiàng)目,不過(guò)增加了一個(gè)DOM解析器,正則表達(dá)式以及結(jié)果集分組。
背景
客戶(hù)端需要一個(gè)簡(jiǎn)單的搜索工具來(lái)查找基于關(guān)鍵字搜索的本地內(nèi)部網(wǎng)站。關(guān)鍵字搜索必須不區(qū)分大小寫(xiě),并允許返回部分匹配的結(jié)果。歸咎于客戶(hù)端內(nèi)容管理系統(tǒng)的架構(gòu),因此(SharePoint)只能執(zhí)行客戶(hù)端腳本。其解決方案的另一個(gè)障礙是,源數(shù)據(jù)將來(lái)自多個(gè)源。數(shù)據(jù)被存儲(chǔ)在多個(gè)Excel電子表格,CSV文件和MS Access數(shù)據(jù)庫(kù)內(nèi)。這就對(duì)我們提出了這樣的需要:開(kāi)發(fā)具有一系列查詢(xún)和一個(gè)宏的Access解決方案,充當(dāng)可合并、擦洗,并最后格式化數(shù)據(jù)作為XML輸出的偽ETL。對(duì)于這個(gè)解決方案的目的,我們將詳細(xì)介紹JavaScript XML分析器的設(shè)計(jì),而不是偽Access ETL宏工具的設(shè)計(jì)。
使用代碼
該解決方案的做法是利用一個(gè)簡(jiǎn)單的基于JavaScript / XML的搜索來(lái)發(fā)送數(shù)據(jù)結(jié)果到HTML / JavaScript前端。前端將引用腳本:jQuery,XML和CSS文件。XML格式將因?yàn)樗目勺x性和它是數(shù)據(jù)交換行業(yè)標(biāo)準(zhǔn)格式之一的事實(shí)而被使用。 XML數(shù)據(jù)將通過(guò)使用AJAX的客戶(hù)端jQuery解析,并通過(guò)Internet Explorer 11呈現(xiàn)。
解決方案將使用RegExp對(duì)象來(lái)處理關(guān)鍵字匹配,驗(yàn)證和特殊字符處理。RegExp對(duì)象字符串將檢查危險(xiǎn)語(yǔ)法從而提高解決方案的穩(wěn)定性和整體可用性。
我們將默認(rèn)使用JavaScript分組功能來(lái)返回匹配結(jié)果作為折疊的紀(jì)錄集。折疊的記錄集線項(xiàng)目將被URL鏈接到相關(guān)的Project Workspace網(wǎng)站。在擴(kuò)展的組記錄集下,結(jié)果將存在于相關(guān)的子記錄中,當(dāng)通過(guò)On Click事件展開(kāi)的時(shí)候。