1. 程式人生 > >bug修復,解決延遲搜尋的問題

bug修復,解決延遲搜尋的問題

在輸入框進行搜尋的時候,通常我們每輸入一個文字都要進行一次搜尋,這樣能得到實時的搜尋結果。如果搜尋速度很快的話當然是沒問題的。

如果搜尋的速度慢,當用戶快速輸入的時候就會很卡了。
其實在使用者快速輸入的時候對中間搜尋的結果並不感興趣,最後的結果才是我們想要的,所以中間過程的頻繁搜尋中是有些浪費時間。

解決方法

我們可以設定一個輸入的間隔時間,假如是200毫秒。從第一次輸入開始計時,如果200毫秒後用戶沒有繼續輸入(說明這就是他想要搜尋的關鍵詞)才進行搜尋,如果200毫秒內有輸入我們就重新計時。這個可以過濾掉很多中間詞的搜尋。

  1. 先定義一個Timer
    timer_ = new QTimer(this
); timer_->setSingleShot(true); connect(timer_, SIGNAL(timeout()), this, SLOT(onOnceTimer()));
  1. 當有輸入時Timer先停止然後重新開始
void Test::onTextEdited(const QString &text)
{
    timer_->stop();
    timer_->start(200);
}
  1. 做搜尋的動作
void Test::onOnceTimer()
{
    QString textTrimmed = text().trimmed();
    // start search ...
}

優化

如果使用者輸入的非常非常快在200毫秒之內,此時搜尋結果還沒有出來他就進行了下一步操作。根據不同場景這樣會帶來一些問題,優化一下Timer觸發邏輯。

    if (timer_->isActive()) {
        timer_->stop();
        timer_->start(200);
    } else {
        timer_->start(0);
    }

相關推薦

bug修復解決延遲搜尋的問題

在輸入框進行搜尋的時候,通常我們每輸入一個文字都要進行一次搜尋,這樣能得到實時的搜尋結果。如果搜尋速度很快的話當然是沒問題的。 如果搜尋的速度慢,當用戶快速輸入的時候就會很卡了。 其實在使用者快速輸入的時候對中間搜尋的結果並不感興趣,最後的結果才是我們想

jlink v8韌體修復解決突然無法識別

剛在某寶上買的jlink用了兩天,突然USB無法識別了,同時jlink的指示燈不亮了,然後看了網上有很多解決這樣的問題的辦法,大都相同或類似,我今天要說的也是和網上的方法差不多。我要說的是在我jlink內部韌體恢復的過程中,幾乎所有的問題都讓我遇到了,雖然都不難解決,但是想

使用原生JS封裝Tap事件解決移動端300ms延遲

itl dia can 開發 閉包 tcl type 移動端 com 為了防止誤操作,移動端iOS操作系統針對原生click事件做了300ms的延遲,這在一定程度上影響了我們的使用體驗。 GitHub項目地址:https://github.com/Simon

【Python圖像特征的音樂序列生成】關於mingus一個bug修復兼改進情感模型

.cn 事情 height trac most 1-1 使用 int .py mingus在輸出midi文件的時候,使用這樣的函數: 1 from mingus.containers import NoteContainer 2 from mingus.midi impo

百度地圖手機端單觸點單擊和長按事件解決部分手機(小米手機)地圖單擊事件失效多觸點、拖動依然觸發長按的bug

|| ble apply timeout console dto eat 問題 int /** * Author 嶽曉 * * 對百度地圖的事件擴展,目前擴展了fastclick和longclick, * 解決某些設備click不執行的問題

dubbo-monitor安裝監控中心管理控制臺安裝網頁一直訪問不到解決bug的方式記錄

log image 不能 控制臺 div tor png class clas 問題再現 第一步,重啟機器 第二步,按照dubbo-monitor需要開啟的服務,順序逐一進行啟動,之前的推翻全部重新再走一遍就通了,千萬不能死磕。。。很浪費時間。。。。 通過打印日誌追蹤

[golang] Glide 包管理工具在windows10 64位系統上的bug修復方案

環境 all 管理工具 oos for 討論 pos inb direct bug重現 [ERROR] Unable to export dependencies to vendor directory: Error moving files: exit status 1

針對Linux系統主機進入修復模式解決開機報錯問題

ebo 掛載 報錯 講解 修復 exit mount 需要 oot 這裏講解的是,當Linux系統的主機開不了機的情況下,可以進入修復模式進行相應的修改 1.讓主機重啟,進入開機時的內核選擇界面,按e進入編輯界面 2.找到linux16那一行,將光標移動到最前面,按下End

chosen(下拉列表帶搜尋外掛)和layer(彈出框外掛)在一起使用會有衝突解決辦法

可以選擇用window.open()和chosen外掛結合使用,這樣就不會有衝突。   chosen外掛的使用: 1、先把js和css檔案引用到網頁裡面去: <link href="js/jqueryUI/chosen/chosen.css" ty

只能輸入數值封裝input或者contentable==true的div解決網上其他方法的bug相容移動端。

/** * 限制只能輸入number * @param {[type]} dom [限制的dom類名] */ function checkNumer(dom) { if (typeof $ == 'function') { let inp = $

RPC 服務框架 Dubbo 2.5.10 和 2.6.1 釋出Bug 修復

轉載自https://www.oschina.net/news/94353/dubbo-2-5-10-and-2-6-1-released Dubbo 2.5.10 和 2.6.1 已釋出。 Dubbo 2.6.1 是改變結構後首次釋出的版本,此前我們曾報道過,Dubbo 2.6.

IntelliJ IDEA 2018.3.1 釋出bug 修復版本

   IntelliJ IDEA 2018.3.1 已釋出,這是 v2018.3 的第一個 bug 修復更新。 值得注意的是,開發團隊表示使用者現在可以通過更新補丁升級至最新的主要版本:如果你使用的是 IntelliJ IDEA 2018.2.7 ,現在可以通過補丁將 IDE

快速開發平臺 MRoot 2.0.1 釋出Bug 修復優化版本

   MRoot是基於Spring Boot2編寫的快速開發平臺 【修復】 1.登入後首頁條數沒有資料 2.Shiro許可權匹配 3.使用Spring Boot內嵌的服務容器啟動專案時,無法初始化 【調整】 1.許可權(system_rule表)的url的欄位加上唯一限制 2.

bug 策略:要麼立馬修復要麼忽略

你在管理著多少個 bug,100,200,還是 2000 個?可能你自己也說不清,因為這個數字一直在變化。 但我卻能說出我們的 bug 數:0 個。 你究竟在 bug 分派和管理上花費了多長時間,還是隻能把它們從這個版本拖到下一個版本? 作為一個團隊經理(group

分散式搜尋引擎 Elasticsearch 6.3.1 釋出Bug 修復

lasticsearch 6.3.1 已釋出,該版本主要是修復了 bug,涉及到認證、Ingest、Java REST 客戶端以及機器學習等方面。具體如下AuthenticationSecurity: fix joining cluster with production l

GitLab 11.6.2 釋出回退與 bug 修復

   GitLab 11.6.2 釋出了,此版本解決了 11.6.0 中的一些回退和 bug: Hide cluster features that don't work yet with Group Clusters. Fix a 500 error that coul

dedecms 5.7 sp1版 關於附件上傳後附件地址回撥失敗的BUG修復

在使用dedecms 5.7 sp1版 時,發現附件上傳後,回撥時會失敗,必須,重新選擇,才能呼叫到上傳的附件,當附件很多時,會很恐怖的。 經過對dedecms5.7的分析,發現是上傳時,沒有傳值導致的。 解決辦法: 1、include目錄下dialog下select_

GitLab 11.6.3 釋出回退與 bug 修復

   GitLab 11.6.3 釋出了,此版本解決了 11.6.2 以及更早版本中的一些回退和 bug 。 更新內容如下: Gitlab 社群版和企業版 可在 GitLab Core,Starter,Premium 和 Ultimate 中使用: 修復 Clon

加密庫 libsodium 1.0.17 釋出Bug 修復版本

   libsodium 1.0.17 已釋出,更新如下: Bug fix: sodium_pad() didn't properly support block sizes >= 256 bytes. JS/WebAssembly: some

解決微信分享圖片網址失效的Bug -- 不完美解決

    先吐槽一句,微信SDK做的真TM的爛,主要是容錯能力太爛,出錯誤不提示,文件各種簡陋。     我是在專案中用微信SDK分享帶圖片的連線,如下:         發現有的連線可以正常分享有的卻不行,wechat_api.sendReq(req);返回false