PDA

View Full Version : سرچ با سرعت خوب روی dropdownlist با تعداد 30 هزار رکورد



resident
پنج شنبه 18 آبان 1396, 10:53 صبح
سلام.
بهترین روش برای پر کردن dropdown با تعداد رکورد بالا مثلا 30.000 رکورد چی هست؟ میخوام روی dropdown بشه سرچ کرد. هم روی بروزر pc هم روی بروزر موبایل.

الان از chosen jquery استفاده می کنم. مشکلش روی تعداد رکورد بالا روی سرچ هست که کنده.

کسی پیشنهادی داره؟

Tekyegah
پنج شنبه 18 آبان 1396, 11:30 صبح
سلام
میتونی از این استفاده کنی :
البته من رو 30 هزار رکورد چک نکردم ، ببنیم وضعیتش چطوره

https://metroui.org.ua/select2.html

کار کردن باهاش هم آسونه ، کد رو توضیح داده و مثال هم زده .

میدونید من به چی فکر میکنم ! این که شما 30 هزار رکورد رو وقتی میخواید load کنید و توی select بذارید زمان میبره ! بقیش که java هست و نباید توی سرعت جستجو مشکلی داشته باشید .

لطفا اگه تست کردید با 30 هزار رکورد نتیجش رو هم اطلاع بدید.

resident
پنج شنبه 18 آبان 1396, 13:34 عصر
سلام
میتونی از این استفاده کنی :
البته من رو 30 هزار رکورد چک نکردم ، ببنیم وضعیتش چطوره

https://metroui.org.ua/select2.html

کار کردن باهاش هم آسونه ، کد رو توضیح داده و مثال هم زده .

میدونید من به چی فکر میکنم ! این که شما 30 هزار رکورد رو وقتی میخواید load کنید و توی select بذارید زمان میبره ! بقیش که java هست و نباید توی سرعت جستجو مشکلی داشته باشید .

لطفا اگه تست کردید با 30 هزار رکورد نتیجش رو هم اطلاع بدید.


دقیقا مشکل منم همینه. لود کردن این 30.000 اطلاعات حدود 4 ثانیه میکشه. dropdown باز میشه اما وقتی میخواد سرچ کنه، سرچش کند انجام میشه.

منم دقیقا همین فکر شما رو میکنم. وقتی اطلاعات اومده روی مرورگر قرار داره، چرا باید سرچش کند انجام بشه.

Tekyegah
پنج شنبه 18 آبان 1396, 14:25 عصر
طول دیتایی که میخواین توی dropdown قرار میدید ، چقدر هست ؟ عدد هست یا عدد و حروف ؟

resident
پنج شنبه 18 آبان 1396, 17:51 عصر
طول دیتایی که میخواین توی dropdown قرار میدید ، چقدر هست ؟ عدد هست یا عدد و حروف ؟

عدد و حرف. طول هر رکورد هم حداکثر 300 کاراکتر

resident
پنج شنبه 18 آبان 1396, 19:37 عصر
آیا select2 قابلیت سرچ روی موبایل هم داره؟
من روی موبایل چک کردم، به صورت تصویر زیر نمایش داده میشه و نمیشه روش سرچ کرد.

خونده بودم قابلیت سرچ روی موبایل رو داره. پس چرا اینطوریه؟

147016

Tekyegah
پنج شنبه 18 آبان 1396, 23:34 عصر
من تست کردم مشکلی نداشت :
http://upload-free.ir/MediaUploader/hamed/ASP/SCT_Metro.jpg

Tekyegah
پنج شنبه 18 آبان 1396, 23:45 عصر
اگه مشکلتون با select2 حل نشد .
بهتون پیشنهاد میکنم از autocomplete خود jquery استفاده کنید . با این تفاوت که مقدار اولیه هنگام load نداشته باشید و بعد از وارد کردن مثلا 3 کارکتر (یا بیشتر) شد با ajax یه select بزنید و تعداد رکوردی که که اون 3 کارکتر رو داره برگردونه .
اینطوری شما مجبور نیستید که همیشه اون 30 هزار رکورد رو load یا توی اون جستجو کنید .

resident
جمعه 19 آبان 1396, 11:22 صبح
من تست کردم مشکلی نداشت :
http://upload-free.ir/MediaUploader/hamed/ASP/SCT_Metro.jpg

ظاهرا ورژن 4 اش موبایل رو ساپورت نمی کنه

resident
جمعه 19 آبان 1396, 22:40 عصر
من با ورژن 3.5.4 و 4.0.3 تست کردم، موبایل رو ساپورت نمی کنن. نمیدونم من باید کاری انجام بدم یا نه.

من فقط select2.js و select2.css رو به به برنامه اضافه کردم.
رفرنس هاشم به برنامم اضافه کردم.


زمانیکه عبارت سرچ شده رو پاک می کنم، زمانیکه همه رو حذف می کنه و دو کاراکتر می مونه، با کندی حذف می کنه. انگار گیر می کنه. این راه حلی داره؟

Tekyegah
شنبه 20 آبان 1396, 18:48 عصر
من این عکسی رو که گذاشتم از خود سایتش هست با Firefox و chrome تست کردم درست کار کرد .

view-source:https://metroui.org.ua/js/metro.js

( از ورژن آخر توی سایتشون استفاده کردن )
نمیدونم چرا برای شما اینطوری میشه .

در خصوص این مشکلی هم که گفتین ، فکر میکنم به خاطر 30 هزار رکوردی که فرمودید باشه .

اگه خیلی تو ذوفتون میخوره ... میتونید به کاربرهاتون بگید که برای حذف کلی عبارت ESC بزنن و خودتون تعریف کنید براش ( hot key ) داره خود metro .

اما من همچنان فکر میکنم اگه autocomplete استفاده کنید ( که بعد از وارد شدن 3 کاراکتر یا بیشتر یه درخواست سمت سرور بفرستید با jquery و بگید حالا رکورد هایی رو بیار که اولش این چند کارکتر وارد شده باشه ، این مشکل وقفه ای که واستون پیش میاد حل میشه ... )

resident
پنج شنبه 25 آبان 1396, 07:47 صبح
من این عکسی رو که گذاشتم از خود سایتش هست با Firefox و chrome تست کردم درست کار کرد .

view-source:https://metroui.org.ua/js/metro.js

( از ورژن آخر توی سایتشون استفاده کردن )
نمیدونم چرا برای شما اینطوری میشه .

در خصوص این مشکلی هم که گفتین ، فکر میکنم به خاطر 30 هزار رکوردی که فرمودید باشه .

اگه خیلی تو ذوفتون میخوره ... میتونید به کاربرهاتون بگید که برای حذف کلی عبارت ESC بزنن و خودتون تعریف کنید براش ( hot key ) داره خود metro .

اما من همچنان فکر میکنم اگه autocomplete استفاده کنید ( که بعد از وارد شدن 3 کاراکتر یا بیشتر یه درخواست سمت سرور بفرستید با jquery و بگید حالا رکورد هایی رو بیار که اولش این چند کارکتر وارد شده باشه ، این مشکل وقفه ای که واستون پیش میاد حل میشه ... )

لینکی که شما فرستادین مربوط به metro.js هست اما من از metro.js استفاده نکردم. فقط js و css مربوط به select2 استفاده کردم.

ممکنه به خاطر عدم استفاده از metro.js باشه؟

resident
پنج شنبه 25 آبان 1396, 16:42 عصر
زمان اجرای کوئری روی SQL ، صفر ثانیه است.

وقتی روی dropdown کلیک می کنم، چهار ثانیه می کشه که لیست رو باز کنه.

به نظر من مشکل از SQL نیست. چون اطلاعات میاد روی browser قرار می گیره و به احتمال زیاد وقتی میخواد سرچ کنه از اطلاعات روی browser سرچ می کنه.

من فکر می کنم مشکل جای دیگه است. به نظر من مشکل از این کامپوننت های سرچ دراپ داونه (به عنوان مثال select2)

Tekyegah
پنج شنبه 25 آبان 1396, 19:33 عصر
سلام
خوشحال بودم فکر میکردم مشکلتون حل شده .

از این 3 تا استفاده کنید :

<script src="metro/js/metro.js"></script>
<script src="metro/js/select2.min.js"></script>
<link href="metro/css/metro.css" rel="stylesheet" />

Tekyegah
پنج شنبه 25 آبان 1396, 19:41 عصر
زمان اجرای کوئری روی SQL ، صفر ثانیه است.

وقتی روی dropdown کلیک می کنم، چهار ثانیه می کشه که لیست رو باز کنه.

به نظر من مشکل از SQL نیست. چون اطلاعات میاد روی browser قرار می گیره و به احتمال زیاد وقتی میخواد سرچ کنه از اطلاعات روی browser سرچ می کنه.

من فکر می کنم مشکل جای دیگه است. به نظر من مشکل از این کامپوننت های سرچ دراپ داونه (به عنوان مثال select2)

صد درصد مشکل از select sql نیست .

همونطور که خودتون گفتید وقتی page باز میشه ، فایل های css و js روی سیستم کاربر بارگزاری میشه ... هر دلیلی ممکنه داشته باشه .

ممکنه از اون 30 هزار رکورد باشه ، یعنی این دیتایی که شما دارید برای مرورگر یا بهتر بگم برای این کاری که شما میخواید انجام بدید یه مقدار سنگین هست به خاطر همین 3-4 ثانیه وقفه داره . ( task manager ویندوز رو بیارید بالا و وقتی صفحه لود میشه و بعد میخواین سرچ کنید ، cpu و ram سیستمتون رو چک کنید ببینید برنامه firefox درصدش چقدر بالا میره )

یه روش دیگه هم هست واسه تست کردن
اینکه به جای 30 هزار رکوردتون واسه تست 10 هزار رکورد بذارید اگه دیدید باز هم هنگ میکنه از مقدارتون کم کنید ببنید رو چند رکورد بدون مشکل هست .

لطفا تست کنید نتیجه رو بگید ...