久久精品国产99国产精品免费看_中文成人在线_日本在线播放视频_精品国产一区二区三区在线观看

ExSearch - 為Typecho帶來實時搜索體驗的插件

這款Typecho插件能夠有效的加強Typecho的搜索體驗,給您的訪客門一個舒適的搜索體驗。

Type-cho 中沒有單獨的搜索頁,絕大多數主題的所謂「搜索頁」只是為搜索框單獨寫了一個樣式,具體的搜索還是靠頁面跳轉。我對 Type-cho 的搜索從來沒有滿意過,因此這次我想辦法將其增強。

我需要為 Type-cho 添加搜索實時響應、高亮與預覽功能。澤澤的搜索插件通過 hack Type-cho 的內部方法實現了高亮與過濾功能,但是仍然不能實現實時響應。其實也能理解,如果跟隨輸入實時響應的話,數據庫的壓力大大增加,而且網絡壓力也大大增加。必須另辟蹊徑。

Hexo 這樣無后端的博客為我提供了新的思路:將內容靜態化,使搜索在前端進行。這樣不僅降低了數據庫壓力,節省了網絡請求數,同時也不用與 Type-cho 的內部方法作斗爭。唯一的缺點是對內容過多的站點來說需要傳輸一定數量的內容到前端,但這通過緩存靜態化與前端長緩存也能緩解。

ExSearch - 為Typecho帶來實時搜索體驗的插件

使用

  • 下載頁底提供的文件
  • 解壓文件夾,并將文件夾重命名為 ExSearch
  • 上傳至插件目錄,在后臺啟用
  • 保存一次插件設置,并點擊重建索引。

在主題中,在任何可點擊的元素上加上?class="search-form-input",點擊即可喚起搜索框。

自定義 hook

默認的,點擊搜索結果時會直接跳轉至對應的頁面,但是若你的主題使用了 AJAX 或者 PJAX 技術,你可能需要使用自定義的鉤子來處理點擊事件(例如發起一次 PJAX 操作)。在頁面中插入一個函數如下:

<script>
function ExSearchCall(item){
    // your code
}
</script>

其中,item?是一個 JQuery 對象。舉例:

function ExSearchCall(item){
    if (item && item.length) {
        $('.ins-close').click(); // 關閉搜索框
        let url = item.attr('data-url'); // 獲取目標頁面 URL
        $.pjax({url: url, 
            container: '#pjax-container',
            fragment: '#pjax-container',
            timeout: 8000, }); // 發起一次 PJAX 請求
    }
}

可能的問題

如果你的站點內容過多導致建立索引失敗,請在 Plugin.php 第 136 行左右的位置,取消下面兩行的注釋:

$sql = 'SET GLOBAL max_allowed_packet=4294967295;';
$db->query($sql);

注意,這需要高級權限。你也可以手動對數據庫執行:

mysql > SET GLOBAL max_allowed_packet=4294967295;

Credit

本項目靈感來源于?Wikitten?與?PPOffice,感謝。

補充:

插件具體的實現原理是:

  1. 插件中生成整個數據庫文章的json數據(并使用typecho的鉤子可以保證在發表新文章、修改文章中時候同步更新數據),這個數據有兩種方式存儲(文件形式,數據庫)
  2. 博客打開的時候就會加載到這個json數據到前端
  3. 搜索的時候直接拿這個json數據進行匹配就可以了

但我把代碼用到我的博客上的時候,出現了一些問題。


當文章數目很多的時候(我的博客目前是217篇文章),生成的json數據大小是很大的,我生成之后是1.9M的大小,使用jquery的 getjson方法很耗時(我測試是19s,和服務器有關,雖然不阻礙頁面渲染)

于是產生兩個問題:

  1. 在json數據在請求的這個過程中,搜索功能是沒辦法用的
  2. json數據過大造成的流量問題

(熊貓小A是一打開博客就開始請求這個json文件,我個人覺得搜索其實并不是一個常用功能,所以我是點擊搜索框才開始請求這個json數據)


當然上面兩個問題不是特別大的問題。

但是如果你的博客的文章非常之多!這個json數據會很大,導致的請求讀取時間就可能非常長了,而且造成不必要的流量加載。


我的解決方法是:前端不要一次性加載整個文章的json數據,而是通過php使用SEESION變量存儲讀取緩存的json數據

if ($_SESSION['search_cache'] === false){
            $object['status'] = false;
            //這部分如果數據是存儲在數據庫中,就從數據庫中讀取,我這里是從緩存文件中讀取
            $filePath = __TYPECHO_ROOT_DIR__ . __TYPECHO_PLUGIN_DIR__ . DIRECTORY_SEPARATOR.'Handsome'.DIRECTORY_SEPARATOR.'cache'.DIRECTORY_SEPARATOR.'search.json';
            $file = file_get_contents($filePath);
            if ($file === false){
                $fail = "{}";
                $_SESSION['search_cache'] = $fail;
                echo $fail;
            }else{
                $_SESSION['search_cache'] = $file;
            }
        }else{
            $object['status'] = true;
        }
        
        //處理搜索數據,返回結果
        ...

通過監控輸入框的值,不斷發起ajax請求,后端直接使用SEESION變量的值進行返回結果就可以。

優點: 多次搜索,只需要一次讀取文件的消耗(之后使用SEESION變量)
缺點: 多次搜索會有多次ajax請求(但這個ajax請求不會讀數據庫,也不會讀文件,總體來說消耗是非常小的,所以速度也是很快的)

(之前實現也是監控輸入值發起ajax請求,只不過每次ajax請求都會操作數據庫,這個速度很慢)

當然這種方法也只是一種權衡罷了,畢竟ajax請求再快也會受服務器是否阻塞和網絡原因影響,而一開始就加載好全部的json數據則真正達到“即時搜索”。

關于搜索的問題,也許這個Typecho插件能夠幫助到您:

Soso - 搜索增強Typecho插件

下載權限
查看
  • 免費下載
    評論并刷新后下載
    登錄后下載
  • {{attr.name}}:
您當前的等級為
登錄后免費下載登錄 小黑屋反思中,不準下載! 評論后刷新頁面下載評論 支付以后下載 請先登錄 您今天的下載次數(次)用完了,請明天再來 支付積分以后下載立即支付 支付以后下載立即支付 您當前的用戶組不允許下載升級會員
您已獲得下載權限 您可以每天下載資源次,今日剩余

給TA贊賞
共{{data.count}}人
人已贊賞
??
Npcink上的部份代碼及教程來源于互聯網,僅供網友學習交流,若您喜歡本文可附上原文鏈接隨意轉載。
無意侵害您的權益,請發送郵件至 1355471563#qq.com 或點擊右側 私信:Muze 反饋,我們將盡快處理。
?
購物車
優惠劵
搜索
久久精品国产99国产精品免费看_中文成人在线_日本在线播放视频_精品国产一区二区三区在线观看

    9000px;">

      久久不见久久见中文字幕免费| 国产一区二区三区久久悠悠色av| 麻豆国产欧美日韩综合精品二区| 欧美日韩的一区二区| 日韩精品欧美成人高清一区二区| 日韩视频在线你懂得| 国产成人免费av在线| 亚洲欧美自拍偷拍| 欧美精品欧美精品系列| 免费成人深夜小野草| 国产免费观看久久| 欧美乱熟臀69xxxxxx| 国产一区二区中文字幕| 玉米视频成人免费看| 91精品国产日韩91久久久久久| 国产一区二区在线看| 亚洲成a人片综合在线| 欧美色区777第一页| 国内精品国产成人国产三级粉色| 国产精品青草综合久久久久99| 色八戒一区二区三区| 免费久久99精品国产| 亚洲国产高清aⅴ视频| 色狠狠av一区二区三区| 久久国产精品第一页| 亚洲精品精品亚洲| 日韩欧美国产一区二区三区| 色婷婷av一区| 福利电影一区二区三区| 日韩精品久久久久久| 中文字幕日本不卡| 精品理论电影在线| 欧美另类变人与禽xxxxx| 成人黄色软件下载| 精品一区二区在线免费观看| 香蕉久久夜色精品国产使用方法 | 日韩精品最新网址| 99久久国产综合精品女不卡| 国产精品夜夜爽| 狠狠色狠狠色合久久伊人| 天天综合网 天天综合色| 亚洲精品水蜜桃| 亚洲你懂的在线视频| 亚洲精品精品亚洲| 亚洲视频一二三| 国产精品成人免费在线| 国产日韩v精品一区二区| 久久亚洲一区二区三区明星换脸| 91精品国产一区二区三区香蕉| 欧美视频你懂的| 欧美男男青年gay1069videost| 欧美三级电影一区| 欧美日韩在线播放三区四区| 欧美视频一区在线| 欧美日韩激情一区二区三区| 欧美亚洲另类激情小说| 欧美日韩卡一卡二| 日韩欧美一级二级三级久久久| 欧美日韩国产综合视频在线观看| 欧美综合视频在线观看| 欧美日韩在线播放三区四区| 91麻豆精品国产91久久久更新时间| 欧美性感一区二区三区| 91精品国产91久久久久久最新毛片 | 一区二区三区影院| 亚洲成av人片| 美女视频一区在线观看| 国产激情视频一区二区在线观看| 波多野结衣中文字幕一区二区三区| www.日韩精品| 91精品在线免费观看| 久久综合九色综合97_久久久| 中文字幕精品在线不卡| 亚洲成av人片在www色猫咪| 久久精品国内一区二区三区| 国产成人精品亚洲午夜麻豆| 色婷婷综合久久久中文字幕| 欧美丰满少妇xxxxx高潮对白| 精品久久久久久久人人人人传媒| 中文av一区二区| 三级久久三级久久久| 国产美女精品在线| 欧美日韩国产美女| 欧美激情在线一区二区三区| 一卡二卡三卡日韩欧美| 加勒比av一区二区| 色丁香久综合在线久综合在线观看| 日韩欧美一区电影| 亚洲女同一区二区| 经典三级视频一区| 精品视频在线免费看| 国产精品丝袜久久久久久app| 亚洲高清一区二区三区| 成人成人成人在线视频| 精品久久免费看| 日韩精品欧美精品| 在线免费一区三区| 国产精品免费网站在线观看| 另类小说一区二区三区| 欧美日韩精品欧美日韩精品一综合| 国产精品美女久久久久aⅴ国产馆| 久久国产免费看| 欧美日韩精品电影| 亚洲综合久久久久| 99精品一区二区三区| 国产亚洲精久久久久久| 日本系列欧美系列| 欧美日韩国产小视频在线观看| 亚洲丝袜另类动漫二区| 国产99精品在线观看| 久久老女人爱爱| 久久www免费人成看片高清| 日本乱人伦一区| 亚洲色图都市小说| 成人免费视频一区| 国产精品丝袜黑色高跟| 国产成人综合精品三级| 4438x成人网最大色成网站| 亚洲美女少妇撒尿| 91天堂素人约啪| 亚洲三级在线观看| 91美女在线观看| 中文字幕一区二区在线播放| 粉嫩13p一区二区三区| 欧美韩国日本一区| 国产91精品露脸国语对白| 国产欧美一区二区在线| 99免费精品在线| 亚洲免费av高清| 欧美日韩久久久久久| 蜜桃av一区二区| 久久久av毛片精品| www.日韩精品| 亚洲国产裸拍裸体视频在线观看乱了| 欧洲另类一二三四区| 日本vs亚洲vs韩国一区三区| 精品国产sm最大网站免费看| 国产精品1区2区3区| 国产精品白丝在线| 欧美日韩你懂的| 毛片不卡一区二区| 日韩欧美在线综合网| 久久99国产精品免费网站| 亚洲国产高清aⅴ视频| 色婷婷亚洲精品| 日本在线不卡视频| 亚洲国产岛国毛片在线| 欧美性大战xxxxx久久久| 韩国理伦片一区二区三区在线播放 | av影院午夜一区| 一区二区三区四区五区视频在线观看| 欧美日韩一区三区| 国产乱妇无码大片在线观看| 亚洲精品一二三四区| 欧美大片国产精品| 色综合久久久久久久| 久久精品国产**网站演员| 中文字幕视频一区| 欧美成人三级电影在线| 91捆绑美女网站| 国内精品国产三级国产a久久| 亚洲视频一区二区在线观看| 91精品国产综合久久婷婷香蕉| 国产成人午夜99999| 日韩精品乱码av一区二区| √…a在线天堂一区| 欧美电视剧在线观看完整版| 91激情在线视频| 国产91在线|亚洲| 久久国产欧美日韩精品| 亚洲成人免费在线| 亚洲蜜桃精久久久久久久| 国产欧美va欧美不卡在线| 欧美一区二区视频在线观看| 北条麻妃国产九九精品视频| 蜜臀国产一区二区三区在线播放| 亚洲三级在线观看| 国产精品蜜臀在线观看| 久久嫩草精品久久久久| 91精品国产麻豆| 欧美妇女性影城| 欧美日韩中字一区| 在线视频国内一区二区| 91免费看`日韩一区二区| 国产不卡免费视频| 国产成人福利片| 国产黄人亚洲片| 国产成人在线网站| 国产成人免费视频一区| 国产一区日韩二区欧美三区| 裸体健美xxxx欧美裸体表演| 日韩激情视频在线观看| 日韩在线a电影| 天堂在线一区二区| 日韩高清电影一区| 裸体在线国模精品偷拍| 狠狠色丁香久久婷婷综| 国产一区二区在线观看免费 | 久草精品在线观看| 久草精品在线观看|