Bladeren bron

搜索频率降低,一个是用户手动点击搜索,一个是每两秒触发一次,同样字符不重复触发

liuchengsen 3 weken geleden
bovenliggende
commit
8b74a552ba
1 gewijzigde bestanden met toevoegingen van 17 en 5 verwijderingen
  1. 17 5
      static/index.html

+ 17 - 5
static/index.html

@@ -104,9 +104,11 @@
     .drug-detail h3{font-size:15px;color:var(--bk);margin:16px 0 8px}
     .drug-detail .info-row{font-size:13px;color:var(--sub);margin:4px 0}
     .drug-detail .section{background:var(--card);border-radius:8px;padding:12px;margin:8px 0;font-size:14px;line-height:1.8}
-    .search-box{padding:10px 14px;background:#fff;border-bottom:1px solid #e0e0e0;flex-shrink:0}
-    .search-box input{width:100%;padding:10px 14px;border:1px solid #ddd;border-radius:24px;font-size:14px;outline:none;min-height:44px}
+    .search-box{padding:10px 14px;background:#fff;border-bottom:1px solid #e0e0e0;flex-shrink:0;display:flex;gap:8px}
+    .search-box input{flex:1;padding:10px 14px;border:1px solid #ddd;border-radius:24px;font-size:14px;outline:none;min-height:44px}
     .search-box input:focus{border-color:var(--bk);box-shadow:0 0 0 2px rgba(0,47,167,.12)}
+    .search-box button{padding:8px 16px;border:none;border-radius:24px;background:var(--bk);color:#fff;font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap;min-height:44px}
+    .search-box button:hover{background:#1a3fbf}
     .status-bar{font-size:11px;padding:4px 14px;text-align:center;flex-shrink:0}
     .hidden{display:none!important}
     .pager{display:flex;justify-content:center;align-items:center;gap:4px;flex-wrap:wrap}
@@ -155,7 +157,7 @@
   </div>
 </div>
 <div id="tabDrugs" class="hidden">
-  <div class="search-box"><input id="drugSearchInput" placeholder="搜索药品名称..." oninput="searchDrugs()"></div>
+  <div class="search-box"><input id="drugSearchInput" placeholder="搜索药品名称..." oninput="onSearchInput()"><button onclick="searchDrugs()">搜索</button></div>
   <div class="drug-list" id="drugList"></div>
   <div class="drug-pager" id="drugPager"></div>
 </div>
@@ -781,10 +783,20 @@
       renderDrugCards(ALL_DRUGS);
     }catch(e){ALL_DRUGS=[];renderDrugCards([])}
   }
+  var searchTimer=null;
+  var lastSearched='';
+  window.onSearchInput=function(){
+    if(searchTimer)clearTimeout(searchTimer);
+    searchTimer=setTimeout(function(){searchDrugs();},2000);
+  };
   window.searchDrugs=function(){
-    drugKeyword=(document.getElementById('drugSearchInput').value||'').trim();
+    if(searchTimer){clearTimeout(searchTimer);searchTimer=null}
+    var kw=(document.getElementById('drugSearchInput').value||'').trim();
+    if(kw===lastSearched)return;
+    drugKeyword=kw;
     if (drugKeyword) track('search', {keyword: drugKeyword});
     loadDrugList(1);
+    lastSearched=kw;
     return false;
   };
   function renderDrugCards(items){
@@ -846,7 +858,7 @@
     }catch(e){document.getElementById('tabDrugs').innerHTML='<div class="welcome"><p>加载失败</p></div>'}
   };
   window.showDrugList=function(){
-    document.getElementById('tabDrugs').innerHTML='<div class="search-box"><input id="drugSearchInput" placeholder="搜索药品名称..." oninput="searchDrugs()" value="'+escAttr(drugKeyword)+'"></div><div class="drug-list" id="drugList"></div><div class="drug-pager" id="drugPager"></div>';
+    document.getElementById('tabDrugs').innerHTML='<div class="search-box"><input id="drugSearchInput" placeholder="搜索药品名称..." oninput="onSearchInput()" value="'+escAttr(drugKeyword)+'"><button onclick="searchDrugs()">搜索</button></div><div class="drug-list" id="drugList"></div><div class="drug-pager" id="drugPager"></div>';
     renderDrugCards(ALL_DRUGS);
   };
   window.handleJumpPage=function(){