/ / jqueryオートコンプリートはASP.net MVC 4モバイルでは本当に遅い - jquery、asp.net-mvc、jquery-mobile

jqueryオートコンプリートは本当にASP.net MVC 4モバイル - jquery、asp.net-mvc、jquery-mobile

MVC 4アプリケーションにオートコンプリートがありますそれは世界のすべての都市のデータベースにつながります(あなたはかなり大きいと思います)。 PCでうまく動作しますが、スマートフォンのサイトに移動すると、読み込みに3秒かかり、パフォーマンスは実際には低迷します。 AjaxやJSONを使用する方が速くなりますか?私は今MVCとWebで1ヶ月しかプログラミングされていないので、私と一緒に裸にしてください。ここではコード(私はpluralsightチュートリアルのコードを使用しています):

ビューの一部+ Javascript

<!--Searching through all the hotel locations -->
<p>Hotel Location (City): @Html.TextBoxFor(x => x.booking_instance.Location,
new { data_autocomplete = @Url.Action("QuickSearch", "Booking") })</p>

<script type="text/javascript">
$(document).ready(function () {
$(":input[data-autocomplete]").each(function () {
$(this).autocomplete({ source: $(this).attr("data-autocomplete") });
});
});
</script>

コントローラ

// this is my database of cities.
TE_TSQL1_HBOSDataContext _db = new TE_TSQL1_HBOSDataContext();
public ActionResult QuickSearch(string term)
{
var cities = _db.Cities
.Where (r => r.CityName.Contains(term))
.Select(r => new { label = (r.CityName + ", " + r.CountryName) });
return Json(cities, JsonRequestBehavior.AllowGet);
}

回答:

回答№1は1

はい! JqueryとAjaxを使用すると、電話機のメモリに完全なデータセットをロードしてからそれを検索する必要がなくなるため、携帯電話で確実に高速化できます。 C#サーバに選択をさせ、必要なデータだけを返すようにすることができます。最も重要な点は、サーバーがすでにJSON結果を返していることと、2文字を入力した後にモバイルデバイスに最初のクエリを実行させることができ、返されるデータセットのサイズが大幅に制限されることです。

        $( ":input[data-autocomplete]" ).autocomplete({
source: "controllerPath/QuickSearch",
minLength: 2

});