2012-06-04 3 views
0

У меня есть автозаполнение в моем приложении MVC 4, которое подключается к базе данных всех городов мира (так что вы можете себе представить, что это довольно большой). Он отлично работает на ПК, но когда я перехожу на сайт на своем смартфоне, загрузка занимает около 3 секунд, и производительность становится действительно вялой. Будет ли использовать Ajax или JSON быстрее? Я только программировал в MVC и сети сейчас уже месяц, поэтому, пожалуйста, со мной. Вот код (я использую код из Pluralsight учебники):jquery autocomplete действительно медленный на ASP.net MVC 4 mobile

Часть View + 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

Да! использование JQuery и Ajax определенно сделает это быстрее на вашем мобильном телефоне, так как вам не придется загружать полный набор данных в память телефона, а затем искать его. Вы можете позволить серверу C# сделать выбор, а затем вернуть только нужные вам данные. Лучше всего, ваш сервер уже возвращает результаты JSON, и вы можете заставить мобильное устройство сделать свой первый запрос после ввода двух символов, что значительно ограничивает размер возвращаемого набора данных.

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

     }); 
+0

Отлично! Работает как шарм :). Знаете ли вы хороший ресурс, где я могу по-настоящему понять AJAX и JSON? (желательно в среде MVC, но если это не так!). Я знаю, что они должны делать, но у меня нет полного понимания того, когда и как их использовать. –

Смежные вопросы