آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

کُند کار کردن شدید برنامه موقع گرفتن اطلاعات از سرور(حل شد)

FSR  7 سال پیش  7 سال پیش
+2 0

سلام

من دارم یه برنامه ای میسازم ،که این برنامه باید بره از سمت سرور یه اطلاعاتی که به صورت دیتابیس ذخیره شده رو بخونه (یک جدول 25*30 که داخل هر سلول جدول یک عدد قرار داره) برنامه باید به صورت لحظه ای عمل کنه (یعنی هر تغییری که مدیر بده باید بقیه اون تغییر رو ببینن) برای این کار برنامه باید بیاد همه ی اطلاعات جدول رو از اول از سمت سرور بخونه تا چک کنه ببینه اطلاعاتی اضافه شده یا نه بعدش اون جدول رو تویه برنامه نمایش بده . همه ی این کار ها زمان بر هستش حالا به نظر شما من از چه روشی استفاده کنم بهتره ؟ خودم از ترد ها استفاده کردم ولی زیاد فرقی نکرد حالا نمیدون چون رویه جنی موشن هستش اینطوریه یا نه رویه گوشی واقعی هم همین طوری هستش ؟!ممنون میشم راهنمایی کنید

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

حالا من هر کار میکنم برنامه کند کار میکنه 

+3 0
اینکه برید همه ی دیتا رو بخونید ببینید تغییری کرده یا نه روش خوبی نیست. می تونید یه فایل txt بسازید توی سرور و یه عدد توش داشته باشه که هر دفعه که آپدیت می کنید این عدد تغییر می کنه. حالا که مثلا دیتا رو با گوشی گرفتید عدد رو هم ذخیره کنید و دفعه ی بعدی که می خواستید دیتا رو بگیرید اول عدد رو بگیرید اگه با اون عددی که ذخیره کرده بودید فرق داشت یعنی بیشتر شده بود یعنی آپدیت شده و اون موقع می تونید دیتا رو بگیرید. اینجوری هم سرعت بیشتر میشه و هم حجم اینترنت کاربر خیلی مصرف نمیشه. (7 سال پیش)
+3 0
سلام ، اینو که با یک Thread هم میشه انجام داد . یک Thread که مثلا هر 5000 ms سرور رو چک میکنه . چون شما در تاپیک دیگه ای گفته بودید که از چندین Thread استفاده میکنید ! نیاز به چندین Thread نیست . روش Ninja خوبه ، هر 5 ثانیه ورژن رو چک کن، اگه مقدار ورژن برگشتی از سرور با مقدار ورژن برنامه یکی نبود توی همون ترد یه درخواست دیگه برای دریافت اطلاعات بده . (7 سال پیش)
+1 0
من از روش ninja@ هم استفاده کردم تازه نمیام هر 5 ثانیه سرور رو چک کنم فقط وقتی که کاربر اون مورد رو خواست میام چک میکنم با این همه کار بازم کند هستش بزارید یه عکس بزارم بالا تا بهتر متوجه بشید (7 سال پیش)
 برای این سوال 1 پاسخ وجود دارد. مشاهده پاسخ صحیح
پاسخ به سوال 
FSR  7 سال پیش
+6 0

 پاسخ صحیح

بلاخره درست شد

برنامه دوتا مشکل داشت 1)کند کار کردن موقع نمایش لیست ویو  2)کند کار کردن موقع دریافت و ارسال اطلاعات به سرور


حل مشکل اول :

تویه ساخت لیست ویو ها باید دقت کنید ببینید که تویه ادپر محاسبه سنگینی انجام ندید که لیست ویو به کندی کار کنه من خودم اومد محاسبات سنگین رو به روشی از ادپتر کشیدم بیرون و فقط نتیجش رو داخل ادپتر نشون دادم


حل مشکل دوم:

برای ارسال و دریافت اطلاعات من از وب سرویس خوده استاد با ترکیبی از چند تردد استفاده میکردم که با پیشنهاد یکی از دوستان از کتابخونه ی volley استفاده کردم که تقریبا سرعت برنامه بهتر شد ولی یه مشکلی که این کتابخونه داشت این بود که اگه شما چند دستور رو به طور همزمان بخواید بهش بدید اصلا معلوم نمیشه کدوم دستور رو اول انجام میده کدوم دستور رو دوم و.. تویه اینترنت گشتم در مورد اولویت بندی درخواست ها چیزای نوشته بود ولی زیاد مفید نبود تا مجبور شدم خودم با استفاده از Handler ها اولویت بندیش رو درست کنم

امیدوارم این چیزای که نوشتم بدرد کسی دیگه ای هم بخوره ممنون از دوستانی که راهنمایی کردن


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .