/ / jquery autocomplete naozaj pomaly na ASP.net MVC 4 mobile - jquery, asp.net-mvc, jquery-mobile

jquery autocomplete naozaj pomaly na ASP.net MVC 4 mobile - jquery, asp.net-mvc, jquery-mobile

Mám automatické dokončenie v aplikácii MVC 4ktorý sa spája s databázou všetkých miest na svete (takže si môžete predstaviť, že je to dosť veľké). Funguje to dobre v počítači, ale keď idem na miesto na svojom smartphone, trvá to dobré 3 sekundy na načítanie a výkon sa stáva naozaj pomalý. Mohol by pomôcť Ajax alebo JSON robiť to rýchlejšie? Mám iba programovanie v MVC a na webe už teraz mesiac, takže prosím, prosím so mnou. Tu je kód (I "m pomocou kódu z pluralsight tutoriály):

Časť zobrazenia + 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>

kontrolór

// 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);
}

odpovede:

1 pre odpoveď č. 1

Áno! pomocou Jquery a Ajax to určite urobíte rýchlejšie vo svojom mobilnom telefóne, pretože nebudete musieť načítať celý súbor údajov do pamäte telefónov a potom ho vyhľadávať. Môžete nechať server C # vybrať a potom vrátiť len požadované údaje. Najlepšia časť je, že váš server už vracia výsledky JSON a mobilné zariadenie môže mať prvý dopyt po zadaní 2 znakov, čo značne obmedzuje veľkosť vrátenej množiny údajov.

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

});