“Javascript 百度search” 是什么呢?
在介紹它之前,先提一下百度搜索。作為中國最大的搜索引擎,大部分人每天都要使用百度搜索來查詢各種信息。然而,對于開發(fā)者或者IT人員來說,搜索結(jié)果固然重要,但是如何更好的使用搜索引擎優(yōu)化我們自己的搜索結(jié)果,也成為一個十分重要的問題。這就是 “Javascript 百度search” 所涉及的問題,并且解決問題的方案就是通過使用Javascript腳本來實現(xiàn)。
那么,Javascript百度search的實現(xiàn)原理是怎樣的呢?
當我們在百度搜索框中輸入查詢內(nèi)容時,我們所看到的搜索結(jié)果都是經(jīng)過百度高度優(yōu)化處理的統(tǒng)計頁面,在搜索結(jié)果頁面的底部(一般是第二頁),會看到翻頁的按鈕,這里我們可以發(fā)現(xiàn)一些按鈕的點擊,和我們查詢條件的變化,都可以通過一些特殊的url參數(shù)來達成,于是這時候動態(tài)修改url參數(shù)就可以實現(xiàn)我們的目標。
var parseQueryString = function (url) { var queryStart = url.indexOf("?") + 1, queryEnd = url.indexOf("#") + 1 || url.length + 1, query = url.slice(queryStart, queryEnd - 1), pairs = query.replace(/\+/g, " ").split("&"), parms = {}, i, n, v, nv; if (query === url || query === "") { return; } for (i = 0; i< pairs.length; i++) { nv = pairs[i].split("="); n = decodeURIComponent(nv[0]); v = decodeURIComponent(nv[1]); if (!parms.hasOwnProperty(n)) { parms[n] = []; } parms[n].push(nv.length === 2 ? v : null); } return parms; };
上面這段Javascript代碼是從url中獲取查詢參數(shù)的函數(shù)。在代碼中,我們通過解析url中的查詢部分, 并將查詢參數(shù)拆分到一個對象中。這個對象可以避免同名的查詢參數(shù)被覆蓋。從而實現(xiàn)將url參數(shù)動態(tài)修改的功能。我們可以通過向setQueryStringParameter()輸入查詢參數(shù)和參數(shù)值的方式來調(diào)用上面的函數(shù)。
var buildSearchURL = function (query, options) { options = options || {}; var pageNum = options.pageNum || 0, queryStringParams = parseQueryString(window.location.href) || {}; var newQueryStringParams = {}; for (var i in queryStringParams) { if (queryStringParams.hasOwnProperty(i)) { newQueryStringParams[i] = queryStringParams[i][0]; } } newQueryStringParams.p = pageNum; newQueryStringParams.q = query; return "/search?" + $.param(newQueryStringParams); };
上面的Javascript代碼是用于構(gòu)建一個新的百度搜索url的函數(shù)。其中,輸入的參數(shù)為一個查詢字符串和一個包含選項的對象。如果沒有指定選項,則使用一個空對象。函數(shù)內(nèi)會構(gòu)建一個可用于替換當前url參數(shù)的新對象。最終返回的url字符串將是百度搜索中帶有新的查詢和選項參數(shù)的結(jié)果頁。
綜上,Javascript是一種非常強大的腳本語言,可以用于各種各樣的用途。其中,通過動態(tài)修改url參數(shù)來實現(xiàn)優(yōu)化搜索結(jié)果將是Javascript的一種有趣的方式。Javascript百度search的實現(xiàn)確實為我們帶來了方便。不過,需要注意的是,在進行Javascript搜索之前,我們最好先了解搜索引擎的原理,從而更好地優(yōu)化我們的搜索結(jié)果。