私はここにいるので、どうかしてください。これはやや紛らわしい状況です。 :)ユーザーからの数秒間使用していない状態で数秒後にajaxコードを実行する
ユーザーが検索テキストボックスに別のユーザー(または名前の一部)の名前を入力し、その検索文字列に一致するユーザーの一覧が返される検索入力に取り組んでいます。問題は、何万人ものユーザーが関わっているときには少し遅いということです。この遅さのために、ユーザーが検索入力に名前をすぐに入力すると、キーストロークごとに検索結果がフラッシュされます(ユーザーが既に検索文字列を入力した後)。それはひどく遅れた反応のようです。
たとえば、名前「Wendy」に入力すると、検索文字列「W」(入力した最初の文字)の検索結果はまだ表示されません。すでに「Wendy」の検索結果が表示されているにもかかわらず、「W」という文字の検索結果が表示され、「We」などが表示されます。
私がやりたいことは、ユーザーが一定の時間(何秒もの間)何も入力していないときだけ検索を実行することです。それ以外の場合は、「検索中」と表示されます。 Javascriptメソッドのコードは次のとおりです。メモと同様に、そのコードは現在ユーザーを検索するために機能していますが、遅延実行を実装するだけです。
function updateSearchResults() {
if($F('searchString').length > 0){
Element.update($('searchResultsScrollBox'), '<h3>Searching...</h3>');
$('searching').style.display = 'block';
var url = '<c:url value='ajaxFrontGetUsers.html'/>';
var ajax = new Ajax.Updater({success: 'searchResults'}, url,
{method: 'post', parameters: $('searchForm').serialize(true)});
$('searching').style.display = 'none';
}
}
私はこれがすべて意味をなさないことを願っています。助けることができる人のために事前に感謝します。