我的 MVC 4 应用程序中有一个自动完成功能,它连接到世界上所有城市的数据库(所以你可以想象它非常大)。它在 PC 上运行良好,但是当我在智能手机上访问该网站时,加载需要 3 秒,而且性能变得非常缓慢。使用 Ajax 或 JSON 会使其更快吗?这是代码(我正在使用来自复数教程的代码):
部分视图 + 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);
}