/ / jquery autocomplete वास्तव में एएसपीनेट एमवीसी 4 मोबाइल पर धीमा - jquery, asp.net-mvc, jquery-mobile

jquery autocomplete वास्तव में एएसपीनेट एमवीसी 4 मोबाइल पर धीमा - jquery, asp.net-mvc, jquery-mobile

मेरे पास मेरे एमवीसी 4 एप्लिकेशन में एक स्वतः पूर्ण हैजो दुनिया के सभी शहरों के डेटाबेस से जुड़ता है (इसलिए आप कल्पना कर सकते हैं कि यह काफी बड़ा है)। यह पीसी पर ठीक काम करता है, लेकिन जब मैं अपने स्मार्टफोन पर साइट पर जाता हूं, तो लोड करने में अच्छा 3 सेकंड लगते हैं और प्रदर्शन वास्तव में सुस्त हो जाता है। अजाक्स या जेएसओएन का उपयोग करना तेजी से कर देगा? मैं अब केवल एक महीने के लिए एमवीसी और वेब में प्रोग्रामिंग कर रहा हूं, इसलिए कृपया मेरे साथ बेकार रहें। यहां कोड है (मैं pluralsight ट्यूटोरियल से कोड का उपयोग कर रहा हूँ):

दृश्य + जावास्क्रिप्ट का हिस्सा

<!--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 का उपयोग करके निश्चित रूप से इसे आपके मोबाइल फोन पर तेज़ी से बना दिया जाएगा क्योंकि आपको फोन मेमोरी में पूर्ण डेटासेट लोड नहीं करना होगा और फिर इसे खोजना होगा। आप सी # सर्वर को चुनने दे सकते हैं और फिर इच्छित डेटा को वापस कर सकते हैं। सबसे अच्छा हिस्सा यह है कि आपका सर्वर पहले ही जेएसओएन परिणाम लौटा रहा है, और आप मोबाइल डिवाइस को 2 अक्षरों के प्रवेश के बाद अपनी पहली क्वेरी बना सकते हैं, जो डेटासेट के आकार को बहुत सीमित कर देता है।

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

});