سرچ با سرعت خوب روی dropdownlist با تعداد 30 هزار رکورد
سلام.
بهترین روش برای پر کردن dropdown با تعداد رکورد بالا مثلا 30.000 رکورد چی هست؟ میخوام روی dropdown بشه سرچ کرد. هم روی بروزر pc هم روی بروزر موبایل.
الان از chosen jquery استفاده می کنم. مشکلش روی تعداد رکورد بالا روی سرچ هست که کنده.
کسی پیشنهادی داره؟
نقل قول: سرچ با سرعت خوب روی dropdownlist با تعداد 30 هزار رکورد
میتونید از select2 استفاده کنید سرعت قابل قبولی داره.
اما مسئله اینکه آیا لود کردن 30000 تا رکورد و دریافت اون ها از دیتابیس و پر کردن Dropdown با اینهمه رکورد کار درستیه و حتما نیاز هست که برنامتون به این شکل باشه ؟
بیشتر مشکل سرعت برای همچین چیزی برای پر کردن اطلاعات در ابتدا هست ; با یه تست ساده میتونید مطمئن بشید :
<!DOCTYPE html>
<html lang="en">
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.4/css/select2.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.4/js/select2.min.js"></script>
</head>
<body>
<select id="select"></select>
<script>
for (var i = 0; i <= 30000; i++) {
$('#select').append($('<option>', {
text: 'Option ' + i
}));
}
$(function () {
$("#select").select2();
});
</script>
</body>
</html>
بنظرم راه های بهتری رو میتونید امتحان کنید مثل اینکه Dropdown رو در ابتدا مثلا با 50 رکورد پر کنید و با سرچ کردن کاربر ( keydown ) ، به سمت سرور بصورت ajax ای request بزنید و نتیجش رو دریافت کنید و Dropdown رو باهاش پر کنید.
نقل قول: سرچ با سرعت خوب روی dropdownlist با تعداد 30 هزار رکورد
نقل قول:
نوشته شده توسط
Moien Tajik
بنظرم راه های بهتری رو میتونید امتحان کنید مثل اینکه Dropdown رو در ابتدا مثلا با 50 رکورد پر کنید و با سرچ کردن کاربر ( keydown ) ، به سمت سرور بصورت ajax ای request بزنید و نتیجش رو دریافت کنید و Dropdown رو باهاش پر کنید.
به نظر شما این روش که با تایپ کاربر بره ajax ای بخونه، چقدر ممکنه تفاوت داشته باشه به لحاظ سرعت؟ اینطوری تعداد request ها به دیتابیس زیاد نمیشه؟ مشکل ساز نمیشه؟
نقل قول: سرچ با سرعت خوب روی dropdownlist با تعداد 30 هزار رکورد
کندو از Paging و virtualization توی اکثر کنترلهاش استفاده میکنه
شاید بتونه کمکتون بکنه
http://demos.telerik.com/kendo-ui/dr...virtualization
1 ضمیمه
نقل قول: سرچ با سرعت خوب روی dropdownlist با تعداد 30 هزار رکورد
آیا select2 قابلیت سرچ روی موبایل هم داره؟
من روی موبایل چک کردم، به صورت تصویر زیر نمایش داده میشه و نمیشه روش سرچ کرد.
خونده بودم قابلیت سرچ روی موبایل رو داره. پس چرا اینطوریه؟
ضمیمه 147015
نقل قول: سرچ با سرعت خوب روی dropdownlist با تعداد 30 هزار رکورد
نقل قول:
آیا select2 قابلیت سرچ روی موبایل هم داره؟
ورژن 3.5 به بالا بله داره اما ورژن 4 هنوز Mobile Support نداره.
نقل قول: سرچ با سرعت خوب روی dropdownlist با تعداد 30 هزار رکورد
نقل قول:
نوشته شده توسط
Moien Tajik
ورژن 3.5 به بالا بله داره اما ورژن 4 هنوز Mobile Support نداره.
من با ورژن 3.5.4 و 4.0.3 تست کردم، موبایل رو ساپورت نمی کنن. نمیدونم من باید کاری انجام بدم یا نه.
من فقط select2.js و select2.css رو به به برنامه اضافه کردم.
رفرنس هاشم به برنامم اضافه کردم.
زمانیکه عبارت سرچ شده رو پاک می کنم، زمانیکه همه رو حذف می کنه و دو کاراکتر می مونه، با کندی حذف می کنه. انگار گیر می کنه. این راه حلی داره؟
نقل قول: سرچ با سرعت خوب روی dropdownlist با تعداد 30 هزار رکورد
البته 30 هزار تا رکورد برای sql server چیزی نیست ولی مشکل زمانی پیش میاد که صد نفر همزمان این کارو انجام بدن . جستجو را به شکل ajax بنویسید و حتما از stored procedure استفاده کنید و بحث index گذاری روی جدول هم به درستی انجام بشه . من جای شما بودن جستجو های تکراری را cache می کردم .
نقل قول: سرچ با سرعت خوب روی dropdownlist با تعداد 30 هزار رکورد
نقل قول:
نوشته شده توسط
debugger
البته 30 هزار تا رکورد برای sql server چیزی نیست ولی مشکل زمانی پیش میاد که صد نفر همزمان این کارو انجام بدن . جستجو را به شکل ajax بنویسید و حتما از stored procedure استفاده کنید و بحث index گذاری روی جدول هم به درستی انجام بشه . من جای شما بودن جستجو های تکراری را cache می کردم .
ممنون از شما. به نظرتون ajax ای سرچ کردن هم با تاخیر انجام نمیشه؟
چطوری جستجوهای تکراری رو کش کنم؟
نقل قول: سرچ با سرعت خوب روی dropdownlist با تعداد 30 هزار رکورد
نقل قول:
نوشته شده توسط
debugger
البته 30 هزار تا رکورد برای sql server چیزی نیست ولی مشکل زمانی پیش میاد که صد نفر همزمان این کارو انجام بدن . جستجو را به شکل ajax بنویسید و حتما از stored procedure استفاده کنید و بحث index گذاری روی جدول هم به درستی انجام بشه . من جای شما بودن جستجو های تکراری را cache می کردم .
زمان اجرای کوئری روی SQL ، صفر ثانیه است.
وقتی روی dropdown کلیک می کنم، چهار ثانیه می کشه که لیست رو باز کنه.
به نظر من مشکل از SQL نیست. چون اطلاعات میاد روی browser قرار می گیره و به احتمال زیاد وقتی میخواد سرچ کنه از اطلاعات روی browser سرچ می کنه.
من فکر می کنم مشکل جای دیگه است.