PDA

View Full Version : سوال: کاربرد تکه کد پر حجم چیست؟



mojniknam
جمعه 20 اردیبهشت 1387, 18:16 عصر
سلام
یکی از سایت های من بصورت عجیبی پر حجم شده
اون سایت رو آپلود کردم و اجرا
بر روی صفحه اجرا شده کلیک راست کردم و View Source رو زدم
تکه کدی در اون بود که حجم بسیار زیادی رو از کل کدهای صفحه اشغال کرده بود

<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value=
مقدار Value اون شامل هزاران کاراکتر نامفهوم بود
میخواستم ببینم این کد چیکار میکنه
چیکار کنم که برطرف بشه؟
قبلا به اون برخورد نداشتم

فایل Source ضمیمه شده

shahab_ksh
جمعه 20 اردیبهشت 1387, 18:31 عصر
اطلاعات صفحه شما رو حفظ میکنه یا حفظ وضعیت کنترل های شما رو به عهده داره VIEWSTATE
میتونید با غیر فعال کردن اون در صفحه برطرفش کنید اما کنترل های شما بی وضعیت میشه بعد از پست بک شدن به سرور

mojniknam
جمعه 20 اردیبهشت 1387, 18:37 عصر
اطلاعات صفحه شما رو حفظ میکنه یا حفظ وضعیت کنترل های شما رو به عهده داره VIEWSTATE
میتونید با غیر فعال کردن اون در صفحه برطرفش کنید اما کنترل های شما بی وضعیت میشه بعد از پست بک شدن به سرور

اول اینکه چه جوری غیر فعالش کنم؟
دوم اینکه کنترل ها بی وضعیت میشه یعنی چی؟ لطفا بیشتر توضیح بدین
سوم اینکه قرار گرفتن هزاران کاراکتر نامفهوم در ادامه این کد طبیعیه؟ پس چرا قبلا ندیدم؟ اگر نیست پس راه حل معقول و مناسب برطرف شدنش (غیر از حذف کامل) چیه؟
ممنون

twelve
جمعه 20 اردیبهشت 1387, 18:40 عصر
در تایید حرفای دوستمون ، علت اینکه ViewState به عنوان یکی از ایمن ترین اشیا ASP شناخته میشه به رمز در آوردن اطلاعات صفحه به همین شکل وحشتناکی است که اشاره کردید! و کا ملا هم نه تنها طبیعیه بلکه لازم و ضروریه!

دوم اینکه کنترل ها بی وضعیت میشه یعنی چی؟

میتونی یک button به صفحه وارد کنی و خاصیت Enable ViewState اونو False کنی ، کلیکش کن و نتیجه رو ببین!

TNZ187
جمعه 20 اردیبهشت 1387, 19:05 عصر
سلام
دوست عزیز ViewState برای حفظ اطلاعات کنترل های شما در طول پست بک های صفحات است . مثلا اطلاعات درون یک TextBox . البته شما خودتون هم می تونید در کنترل هایی که می نویسید از این حافظه برای نگهداری مقادیر Property های کنترل کمک بگیرید . مثلا اینکه شما در مرحله چندم یک ویزارد هستید و اینکه در مرحله قبل چه انتخابی داشتید و ... .
البته بسته به هر نوع کنترل ، مورد استفاده فرق می کنه ولی به صورت عمومی یک حافظه است که در خود صفحه ذخیره می شه .

mojniknam
جمعه 20 اردیبهشت 1387, 19:16 عصر
از شما بابت این اطلاعات ممنونم
ولی اصلی ترین سوالم سر جاش هست!
من قبلا توی هیچکدوم از پروژه هام با این حجم زیاد کد مواجه نشده بودم
چیکار میتونم انجام بدم که کمترش کنم ولی به اطلاعات و امنیت صفحه ام آسیبی نرسه

یه مورد دیگه اینکه من حدس میزنم افزایش (شاید) غیر طبیعی حجم این کد بخاطر استفاده از آجاکس باشه
نظر شما چیه؟

shahab_ksh
جمعه 20 اردیبهشت 1387, 19:29 عصر
چیکار میتونم انجام بدم که کمترش کنم ولی به اطلاعات و امنیت صفحه ام آسیبی نرسه

یه مورد دیگه اینکه من حدس میزنم افزایش (شاید) غیر طبیعی حجم این کد بخاطر استفاده از آجاکس باشه
نظر شما چیه؟


از ادیتور خاصی در صفحه استفاده کردی؟ یا چیزی شبیه اون؟

TNZ187
جمعه 20 اردیبهشت 1387, 19:31 عصر
سلام
به نظرم می تونید یکی از این چند راه را انتخاب کنید :
1 - یک سری به تاپیک فشرده سازی بزنید . ( البته سایت http://www.codeproject.com/KB/aspnet/httpcompression.aspx راحت تره )
2 - صفحه رو آپلود کنید تا دوستان با اطلاعات بیشتری نظر بدهند
3 - خودتون فکر کنید و به نتیجه برسید
4 - بقیه روز رو در کنار اعضای خانواده تلویزیون ببینید ( شهریار فراموش نشه :لبخندساده: )

mojniknam
جمعه 20 اردیبهشت 1387, 22:10 عصر
از ادیتور خاصی در صفحه استفاده کردی؟ یا چیزی شبیه اون؟
از ادیتور توی بعضی صفحات (قسمت مدیریت) استفاده کردم ولی این کد توی تمام صفحاته



2 - صفحه رو آپلود کنید تا دوستان با اطلاعات بیشتری نظر بدهند
صفحه آپلود شده: www.NAKHLESTAN.org (http://www.NAKHLESTAN.org)

shahab_ksh
جمعه 20 اردیبهشت 1387, 22:21 عصر
با کنترلهایی که در صفحتون میبینم این طبیعی هستش

mojniknam
جمعه 20 اردیبهشت 1387, 22:25 عصر
حدود 16 تا کنترل داره
منم ده تاش رو حذف کردم ولی تغییری نکرد
ضمن اینکه فقط از کنترل های formview , sqldatasource , datalist استفاده شده

shahab_ksh
جمعه 20 اردیبهشت 1387, 22:32 عصر
همین طوری سرسری که به سایت شما نگاه کردم چند تا ایراد تابلو دیدم رفعش کنید

1- هیچ وقت ندیدم Title صفحه رو از طریق کواری استریک پاس بدن هیچ لزومی نداشته این کار


http://www.nakhlestan.org/DetNews.aspx?NewsID=952573124&Title=مراسم نظامی مشترک یگانهای نیروهای مسلحِ استان فارس


2- فرم مربوط به ارسال نظرات شما در صورتی که ID نامعتبری هم بهش داده بشه فعال میشه یعنی !
مثلا شما کلا خبری با این ID ندارید

http://www.nakhlestan.org/DetNews.aspx?NewsID=952523124


اگه وارید این صفحه بشید میبینید بابت هیچ خبری صفحه ارسال نظر شما باز شده
فرضا شما نظرات رو در جدول مربوط به نظرات با ID خبر ثبت کنید و بعدا در صفحه نظرات مربوط به اون خبر بخونید تصمیم بگیرید پاک کنید اون وقت خبری وجود نداره که با اون بتونید پاک کنید در نتیجه اگه هکری بخاد به این وسیله به سایت شما آسیب میرسونه ! بانک اطلاعاتی شما کلی داده کور دارن !

الگوریتمتون رو اصلاح کنید !




حدود 16 تا کنترل داره
منم ده تاش رو حذف کردم ولی تغییری نکرد
ضمن اینکه فقط از کنترل های formview , sqldatasource , datalist استفاده شده



کلا نگران اون اطلاعات Viewstate نباشید

mojniknam
جمعه 20 اردیبهشت 1387, 22:47 عصر
همین طوری سرسری که به سایت شما نگاه کردم چند تا ایراد تابلو دیدم رفعش کنید

1- هیچ وقت ندیدم Title صفحه رو از طریق کواری استریک پاس بدن هیچ لزومی نداشته این کار


http://www.nakhlestan.org/DetNews.aspx?NewsID=952573124&Title=مراسم نظامی مشترک یگانهای نیروهای مسلحِ استان فارس


2- فرم مربوط به ارسال نظرات شما در صورتی که ID نامعتبری هم بهش داده بشه فعال میشه یعنی !
مثلا شما کلا خبری با این ID ندارید

http://www.nakhlestan.org/DetNews.aspx?NewsID=952523124


اگه وارید این صفحه بشید میبینید بابت هیچ خبری صفحه ارسال نظر شما باز شده
فرضا شما نظرات رو در جدول مربوط به نظرات با ID خبر ثبت کنید و بعدا در صفحه نظرات مربوط به اون خبر بخونید تصمیم بگیرید پاک کنید اون وقت خبری وجود نداره که با اون بتونید پاک کنید در نتیجه اگه هکری بخاد به این وسیله به سایت شما آسیب میرسونه ! بانک اطلاعاتی شما کلی داده کور دارن !

الگوریتمتون رو اصلاح کنید !

کلا نگران اون اطلاعات Viewstate نباشید

در مورد نکته اولتون ، بخاطر موتورهای جستجو این کار رو کردم... تا الان که خیلی تاثیر داشته... ولی اینکه از کوئری استرینگ استفاده شده ، کار درستی نبوده و دارم اصلاح میکنم
درمورد نظرات ، بنظرم مشکلی نداره چونکه مدیریت نظرات تحت تاثیر مطلب نیست. یعنی توی مدیریت تمام نظرات زیر هم لیست میشه و جلوی هر نظر عنوان مطلب و لینک ارجاع به مطلب قرار گرفته... بنابراین نظرات با کد مطلب نامعتبر هم قابل ویرایش هستند...

ولی اینا ربطی به سوال من نداشت!!! لطفا درمورد سوال راهنماییم کنید... (البته خیلی خوشحال شدم که در مورد سایت نظر دادین)
بنظر سرعت پایین سایت به همین دلیل باشه

chaalesh
شنبه 21 اردیبهشت 1387, 10:43 صبح
سایتتون ایراد داشت
در آدرس :
http://www.nakhlestan.org/DetNews.as...اسراییل (http://www.nakhlestan.org/DetNews.aspx?NewsID=375288130&Title=سربازان%20رشید%20اسراییل)!
متن ایراد :

Compilation Error


Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.
Compiler Error Message: BC30506: Handles clause requires a WithEvents variable defined in the containing type or one of its base types.Source Error:
System.Web.UI.MasterPageLine 4: Line 5: Protected Sub ImageButton3_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles ImageButton3.ClickLine 6: Page.Response.Redirect("DetNews.aspx?NewsID=513191 0117&Title=ویژه سفر مقام معظم رهبری به استان فارس")Line 7: End Sub
Source File:E:\inetpub\vhosts\nakhlestan.org\httpdocs\Mas terNa kh3.master.vb
Line: 5

mojniknam
شنبه 21 اردیبهشت 1387, 10:54 صبح
حالا چرا گیر دادین به این چیزا
این سایت نسخه آزمایشی هست
من دسترسی عمومی اون رو محدود کرده بودم و موقتا بخاطر برطرف شدن مشکلی که در این تایپک گفتم ، بازش کردم... وگرنه من خودم ده تا ارور دیگه هم میدونم داره... سایت هنوز تکمیل و افتتاح نشده...
بنابراین لطفا بجای عوض کردن موضوع بحث ، یه کمکی مرتبط با بحث بکنید
ممنون

Exception
شنبه 21 اردیبهشت 1387, 11:21 صبح
خوب، سوال الان دقیقا چیه؟ شما حجم صفحتون خیلی بالاست و توی 260 کیلوبایت حجم صفحه هم فقط 60 کیلوبایت رو ViewState مصرف کرده که طبیعی هست.
اگر سوال اینه که ViewState چه لزومی هست که باشه، جواب اینه که خود ASP.NET برای حفظ وضعیت کنترلها لازم داره. اما اگر بازهم میخواهید که نباشه، روی تمام کنترلها، EnableViewState رو false کنید.
اگر سوال اینه که چجوری حجم صفحه رو کم کنید، یا باید اطلاعات موجود در صفحه رو کم کنید و یا باید فشرده سازی کنید صفحه رو. (http://barnamenevis.org/forum/showthread.php?t=55129)
اگر هم سوال دیگه ای دارید که من منظورتون رو نفهمیدم. یه کمی بیشتر توضیح بدین.