OSDN Git Service

BugTrack/2433 Control Search Request interval
authorumorigu <umorigu@gmail.com>
Sun, 17 Sep 2017 23:00:36 +0000 (08:00 +0900)
committerumorigu <umorigu@gmail.com>
Sun, 17 Sep 2017 23:00:36 +0000 (08:00 +0900)
plugin/search2.inc.php
skin/search2.js

index 6483988..67e28a5 100644 (file)
@@ -11,6 +11,7 @@ define('PLUGIN_SEARCH2_MAX_BASE',   16); // #search(1,2,3,...,15,16)
 
 define('PLUGIN_SEARCH2_RESULT_RECORD_LIMIT', 500);
 define('PLUGIN_SEARCH2_RESULT_RECORD_LIMIT_START', 100);
+define('PLUGIN_SEARCH2_SEARCH_WAIT_MILLISECONDS', 1000);
 
 // Show a search box on a page
 function plugin_search2_convert()
@@ -196,6 +197,7 @@ EOD;
        }
        $_search2_result_notfound = htmlsc($_msg_notfoundresult);
        $_search2_result_found = htmlsc($_msg_andresult);
+       $_search2_search_wait_milliseconds = PLUGIN_SEARCH2_SEARCH_WAIT_MILLISECONDS;
        $result_page_panel =<<<EOD
 <div id="_plugin_search2_search_status"></div>
 <div id="_plugin_search2_message"></div>
@@ -203,6 +205,7 @@ EOD;
 <input type="hidden" id="_plugin_search2_msg_searching" value="$_search_searching">
 <input type="hidden" id="_plugin_search2_msg_result_notfound" value="$_search2_result_notfound">
 <input type="hidden" id="_plugin_search2_msg_result_found" value="$_search2_result_found">
+<input type="hidden" id="_search2_search_wait_milliseconds" value="$_search2_search_wait_milliseconds">
 EOD;
        if ($h_search_text == '') {
                $result_page_panel = '';
index 622bb60..d9753e4 100644 (file)
@@ -10,7 +10,7 @@ window.addEventListener && window.addEventListener('DOMContentLoaded', function(
     var aroundLines = 2;
     var maxResultLines = 20;
     var minBlockLines = 5;
-    var searchWaitMilliseconds = 100;
+    var minSearchWaitMilliseconds = 100;
     function escapeHTML (s) {
       if(typeof s !== 'string') {
         s = '' + s;
@@ -114,9 +114,19 @@ window.addEventListener && window.addEventListener('DOMContentLoaded', function(
         ul.appendChild(fragment);
       });
       if (!obj.search_done && obj.next_start_index) {
+        var waitE = document.querySelector('#_search2_search_wait_milliseconds');
+        var interval = minSearchWaitMilliseconds;
+        try {
+          interval = parseInt(waitE.value);
+        } catch (e) {
+          interval = minSearchWaitMilliseconds;
+        }
+        if (interval < minSearchWaitMilliseconds) {
+          interval = minSearchWaitMilliseconds;
+        }
         setTimeout(function(){
           doSearch(searchText, session, obj.next_start_index);
-        }, searchWaitMilliseconds);
+        }, interval);
       }
     }
     function textToRegex(searchText) {