0

オートコンプリート機能を提供する php Web サイトに検索機能を構築しようとしています。多くの人が jquery UI オートコンプリートを推奨していることに気付きました。しかし、私は彼らの例をオンラインで見ましたが、例の「鳥」データベースを検索するには非常に長い時間がかかるようです。サンプルコードを分析して、高速化する方法があるかどうかを確認する時間は取っていません。しかし、同じことを達成するために他にどのような方法を模索すべきかを尋ねたいと思いました。
お時間をいただきありがとうございます!

4

2 に答える 2

0

jQueryUIのオートコンプリートは豊富で素晴らしいです。AJAXを使用してデータベースからアイテムを取得する速度が心配な場合は、ページに埋め込まれた関連情報のJSON配列を事前入力するアプローチを検討してください。その後、そのかなりの瞬間に近い(ページに膨満感がたくさんあるでしょう)

http://jqueryui.com/autocomplete/#default

<head>
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.1/themes/base/jquery-ui.css" />
    <script src="http://code.jquery.com/jquery-1.8.2.js"></script>
    <script src="http://code.jquery.com/ui/1.9.1/jquery-ui.js"></script>
    <link rel="stylesheet" href="/resources/demos/style.css" />
    <script>
    $(function() {
        var availableTags = [
            "ActionScript",
            "AppleScript",
            "Asp",
            "BASIC",
            "C",
            "C++",
            "Clojure",
            "COBOL",
            "ColdFusion",
            "Erlang",
            "Fortran",
            "Groovy",
            "Haskell",
            "Java",
            "JavaScript",
            "Lisp",
            "Perl",
            "PHP",
            "Python",
            "Ruby",
            "Scala",
            "Scheme"
        ];
        $( "#tags" ).autocomplete({
            source: availableTags
        });
    });
    </script>
</head>

そうは言っても、AJAXがページを呼び出してデータベースにクエリを実行し、データを返す速度は、接続とその実行中のサーバーに完全に依存します。jQueryUIのオートコンプリートは非常に高速で、保証できます

彼らのドキュメントを見てみると、このライブラリがいかに柔軟であるかに驚くでしょう。リモートデータソースの例は次のようになります。

<script>
$(function() {
    function log( message ) {
        $( "<div>" ).text( message ).prependTo( "#log" );
        $( "#log" ).scrollTop( 0 );
    }

    $( "#birds" ).autocomplete({
        source: "search.php",
        minLength: 2,
        select: function( event, ui ) {
            log( ui.item ?
                "Selected: " + ui.item.value + " aka " + ui.item.id :
                "Nothing selected, input was " + this.value );
        }
    });
});
</script>
于 2012-11-21T18:47:48.090 に答える