Jqueryオートコンプリートからの複数のajax呼び出しを回避する方法は?キャッシュの使用

user2721874

私は呼び出しでjqueryautomcomplete使用していAjaxますが、最初の呼び出しでajaxによってフェッチさpartれたjsonデータに存在する場合、ajax呼び出しを行わずにそのデータをそのまま返したいのですが、以下のように試しました

  function SearchText() {
        var cache = {};
        $("#txtItem").autocomplete({
            source: function (request, response) {
                var term = request.term;
                $.each(cache, function (index, value) {
                    $.each(value, function (index, value) {
                        if (value.indexOf(term) >= 0) {
                            response(cache[term]);
                            return;
                        }
                    });
                });
                cache = {};
                $.ajax({
                    type: "POST",
                    contentType: "application/json; charset=utf-8",
                    url: "JobTagPricing.aspx/GetAutoCompleteData",
                    data: "{'item':'" + document.getElementById('txtItem').value + "'}",
                    dataType: "json",
                    success: function (data) {
                        cache[term] = data.d;
                        response(data.d);
                    },
                    error: function (result) {
                        alert("Error");
                    }
                });
            },
            minLength: 3
        });
    }

ただしterm、配列内で一致するものが見つかった場合でも、ajax呼び出しが生成されます。私はここで3時間立ち往生していますが、どんな助けでも素晴らしいでしょう。試しましたmaxCacheLengthが、動作しません。

マヘシュ

これを試してみてください、しばらく前に私は同じ問題に直面し、これを思いついたそれはあなたのために働くかもしれません

   function SearchText() {
        var cache = {};
        var oldterm;
        $("#txtItem").autocomplete({
            source: function (request, response) {
                if (request.term.indexOf(oldterm) >= 0) {
                    if (typeof (oldterm) != 'undefined') {
                        var data = jQuery.grep(cache[oldterm],
                    function (ele) {
                        return (ele.indexOf(request.term) >= 0);
                    });
                        response($.map(data, function (item) {
                            return { value: item }
                        }))
                        return;
                    }
                } else {
                    cache = {};
                    $.ajax({
                        url: "JobTagPricing.aspx/GetAutoCompleteData",
                        data: "{ 'item': '" + request.term + "' }",
                        dataType: "json",
                        type: "POST",
                        contentType: "application/json; charset=utf-8",
                        dataFilter: function (data) { return data; },
                        success: function (data) {
                            oldterm = request.term;
                            cache[request.term] = data.d;
                            response($.map(data.d, function (item) {
                                return {
                                    value: item
                                }
                            }))
                        },
                        error: function (result) {
                            alert("Error");
                        }
                    });
                }
            },
            minLength: 3,
            select: function (event, ui) {
                if (ui.item) {
                    formatAutoComplete(ui.item);
                }
            }
        });
    }

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

タスクを使用して、コストのかかる操作への複数の呼び出しを回避し、その結果をキャッシュします

分類Dev

複数のストアドプロシージャ(モデル)を非同期的に呼び出し、コントローラーからの結果セットをMVCのビュー内の変数に割り当てる方法は?

分類Dev

AJAX呼び出しを使用したオートコンプリートで、ある関数から別の関数に変数値を渡す

分類Dev

プッシュされたオブジェクトの配列からコンポーネントから関数を呼び出す方法は?

分類Dev

jQueryスクリプト(MVC)からパーシャルビューのボタンを呼び出す方法

分類Dev

angle2 のテンプレートにロードされたスコープ変数にアクセスする前に ajax 呼び出しを適切に実行してキャッシュする方法は?

分類Dev

コントローラからのajax呼び出しで返されたリストを使用する方法

分類Dev

jQueryの$ .ajax()関数からサーブレットを呼び出す方法は?

分類Dev

Intellij呼び出しメソッド:すべての引数でオートコンプリートする方法

分類Dev

チェックボックスを使用してjqueryオートコンプリートから複数のオプションを選択します

分類Dev

コンソールログを使用して複数のajaxリクエストを呼び出す方法

分類Dev

PowerShellには、複数のパラメーターセットを使用したコマンドの呼び出しを処理する方法がありますか?

分類Dev

ifステートメントを回避して複数のコンストラクターを呼び出す方法

分類Dev

PHP から AJAX および JSON を使用した JQuery オートコンプリートに複数の配列を渡す

分類Dev

ASP.NET アプリケーションの異なるディレクトリから jQuery ajax 呼び出しに汎用 URL を提供する方法

分類Dev

ajaxを使用してコントローラーから関数を呼び出す新しいルートまたは別の方法?Laravel 5.2、Ajax

分類Dev

コンストラクターの呼び出しを回避する方法は?

分類Dev

ラジオボタンのクリックからコントローラーを呼び出す方法は?

分類Dev

コンテキストメニューのオプションからlonglistselectorイベントを呼び出す方法

分類Dev

ajaxメソッドの後にjqueryオートコンプリートを呼び出せないのはなぜですか

分類Dev

ASP.NET MVC-ビュー内からコントローラーメソッドを呼び出して、他の複数のビューにリダイレクトするにはどうすればよいですか?

分類Dev

ASP.NET MVC-ビュー内からコントローラーメソッドを呼び出して、他の複数のビューにリダイレクトするにはどうすればよいですか?

分類Dev

複数のAJAX呼び出しを回避する方法は?

分類Dev

複数のAJAX呼び出しを回避する方法は?

分類Dev

Oracle Coherence:レプリケートされたキャッシュの呼び出しのタイムアウトを設定する方法

分類Dev

MVCアプリでajax呼び出しを使用してコントローラーからPDFドキュメントを返す方法

分類Dev

SSISで(スクリプトコンポーネント内の)複数の入力を使用してWebサービスを呼び出す方法は?

分類Dev

ビューファイルから(onchange属性のドロップダウンから)コントローラー関数を呼び出す方法は?

分類Dev

正規表現を使用してRのPDFドキュメントから参照のすべての異なるオプションを抽出します(複数のオプション/キャプチャグループ?)

Related 関連記事

  1. 1

    タスクを使用して、コストのかかる操作への複数の呼び出しを回避し、その結果をキャッシュします

  2. 2

    複数のストアドプロシージャ(モデル)を非同期的に呼び出し、コントローラーからの結果セットをMVCのビュー内の変数に割り当てる方法は?

  3. 3

    AJAX呼び出しを使用したオートコンプリートで、ある関数から別の関数に変数値を渡す

  4. 4

    プッシュされたオブジェクトの配列からコンポーネントから関数を呼び出す方法は?

  5. 5

    jQueryスクリプト(MVC)からパーシャルビューのボタンを呼び出す方法

  6. 6

    angle2 のテンプレートにロードされたスコープ変数にアクセスする前に ajax 呼び出しを適切に実行してキャッシュする方法は?

  7. 7

    コントローラからのajax呼び出しで返されたリストを使用する方法

  8. 8

    jQueryの$ .ajax()関数からサーブレットを呼び出す方法は?

  9. 9

    Intellij呼び出しメソッド:すべての引数でオートコンプリートする方法

  10. 10

    チェックボックスを使用してjqueryオートコンプリートから複数のオプションを選択します

  11. 11

    コンソールログを使用して複数のajaxリクエストを呼び出す方法

  12. 12

    PowerShellには、複数のパラメーターセットを使用したコマンドの呼び出しを処理する方法がありますか?

  13. 13

    ifステートメントを回避して複数のコンストラクターを呼び出す方法

  14. 14

    PHP から AJAX および JSON を使用した JQuery オートコンプリートに複数の配列を渡す

  15. 15

    ASP.NET アプリケーションの異なるディレクトリから jQuery ajax 呼び出しに汎用 URL を提供する方法

  16. 16

    ajaxを使用してコントローラーから関数を呼び出す新しいルートまたは別の方法?Laravel 5.2、Ajax

  17. 17

    コンストラクターの呼び出しを回避する方法は?

  18. 18

    ラジオボタンのクリックからコントローラーを呼び出す方法は?

  19. 19

    コンテキストメニューのオプションからlonglistselectorイベントを呼び出す方法

  20. 20

    ajaxメソッドの後にjqueryオートコンプリートを呼び出せないのはなぜですか

  21. 21

    ASP.NET MVC-ビュー内からコントローラーメソッドを呼び出して、他の複数のビューにリダイレクトするにはどうすればよいですか?

  22. 22

    ASP.NET MVC-ビュー内からコントローラーメソッドを呼び出して、他の複数のビューにリダイレクトするにはどうすればよいですか?

  23. 23

    複数のAJAX呼び出しを回避する方法は?

  24. 24

    複数のAJAX呼び出しを回避する方法は?

  25. 25

    Oracle Coherence:レプリケートされたキャッシュの呼び出しのタイムアウトを設定する方法

  26. 26

    MVCアプリでajax呼び出しを使用してコントローラーからPDFドキュメントを返す方法

  27. 27

    SSISで(スクリプトコンポーネント内の)複数の入力を使用してWebサービスを呼び出す方法は?

  28. 28

    ビューファイルから(onchange属性のドロップダウンから)コントローラー関数を呼び出す方法は?

  29. 29

    正規表現を使用してRのPDFドキュメントから参照のすべての異なるオプションを抽出します(複数のオプション/キャプチャグループ?)

ホットタグ

アーカイブ