PDA

View Full Version : حجم فوق العاده عجیب viewstate !!!



twelve
جمعه 08 آذر 1387, 14:21 عصر
:متعجب::متعجب::متعجب::متعجب:
هیچ توضیحی نمیدم ، فقط فایل ضمیمه رو ببینید....:اشتباه:

آیا این واقعا معقولانه هست؟!

milade
جمعه 08 آذر 1387, 14:31 عصر
اره چرا که نه؟!
وقتی شما یه عالمه کنترل سروری میریزی روی فرم همین ها رو هم داره دیگه(مخصوصا اجاکس هم باشه!)
در کل اونایی رو که احتیاجی به نگه داشتن وضعیت نداری رو enable رو false کن یا اصلا برا کل صفحه یا کل پروژه رو
(حالا مگه چی کار کردی که این طوری شده؟)
موفق باشی

twelve
جمعه 08 آذر 1387, 19:32 عصر
اره چرا که نه؟!
وقتی شما یه عالمه کنترل سروری میریزی روی فرم همین ها رو هم داره دیگه(مخصوصا اجاکس هم باشه!)
واقعا معقوله ؟! من خودم انتظار حجم بالا رو داشتم ولی دیگه نه اینقدر زیاد ، توی صفحه ای که این اتفاق افتاده از اجکس استفاده نشده ، در کل هیچ کنترلی هم وجود نداره ، صفحه از پایه تقریبا سفید و خالی هست و المنت های سرور و کلاینت به صورت داینامیک ساخته میشه ! کنترل های داینامیک هم که خود به خود viewstate=false هستند ، واسه همین هست که برام عجیبه!! آخه این 83 کیلو بایت شده، یعنی به اندازه یه صفحه استاندارد کامل !!

milade
جمعه 08 آذر 1387, 20:01 عصر
با این اوصاف یه خورده باعث نگرانیه :تعجب:
اما اگه مطمعنید که کنترهایی که به طور داینامیک به صفحه اضافه میشن viewstate برابر false هست که یه مشکل دیگه هست که نمی دونم چیه اما ...(مطمعنید؟)

twelve
شنبه 09 آذر 1387, 00:18 صبح
من مورد عجیب و غیر عادی از نظر فنی توی این صفحه ندیدم ، بقیه صفحات هم تقریبا مشابه همین صفحه برنامه نویسی شده و حجم ViewState بالایی دارند (البته قابل قبول) اما این صفحه خیلی عجیبه !! 83 کیلو بایت حجم؟! این از نوادر و عجایب 8 گانه میتونه باشه!!
من مورد خاصی دیگه به ذهنم نمیرسه که چک کنم ! دوستان نظری ندارن؟!

milade
شنبه 09 آذر 1387, 04:53 صبح
شاید از چند کنترل خاص(گرید،لیست) استفاده کردید که برا حفظ موقعیت حجمشون زیاد میشه
پیشنهاد میکنم اگه به viewstate نیاز ندارید و طراحی طوری نیست که باعث کاهش امنیت بشه به کل enableviewstate صفحه رو false کنید
راستی میشه نمونه کدتون رو بگذارید؟
موفق باشید

emad_67
شنبه 09 آذر 1387, 08:57 صبح
سلام
همین مورد رو من توی تاپیک دیگه ای که یکی از دوستان فایلی رو در اون گذاشته بود دیدم و برای منم سوال شد. توی اون فایل فقط یک کنترل سمت سرور وجود داشت ولی حجم viewstate خیلی زیاد شده بود:
http://barnamenevis.org/forum/showthread.php?t=133034

آیا حجم اطلاعاتی که میره سمت کلاینت هم روی حجم viewstate تاثیر میزاره؟

Exception
شنبه 09 آذر 1387, 12:16 عصر
کنترل های داینامیک هم که خود به خود viewstate=false هستند کی گفته این حرف رو؟ تا جایی که من میدونم اینطور نیست. (البته شاید هم اشتباه کنم!)

شاید اگر بدونی چی توی ViewState هست راحتتر بفهمی. اینها توی ViewState شما بود:


t<660790323;t<;l<i<0>;>;l<t<;l<i<1>;i<7>;i<9>;i<11>;>;l<t<;l<i<1>;>;l<t<;l<i<3>;>;l<t<p<l<innerhtml;>;l<\<div align='right' class='text1' style='direction:rtl\;'\> ?¬U??¹U? 8 ?¢?°?± 1387 ?? 28 U?U??§U??¨?± 2008 ?? ?³?§?¹?? 14:27\</div\>;>>;;>;>>;>>;t<p<l<innerhtml;>;l<U?U??§ ?´U??§?³U? ?§U??±?§U?;>>;;>;t<;l<i<1>;>;l<t<;l<i<0>;>;l<t<p<l<innerhtml;>;l<\<Div align=justify style=direction:rtl\;\>\<table bordercolor="#eddec9" cellspacing="1" cellpadding="4" width="100%" border="1"\>

\<tbody\>
\<tr\>
\<td\>
\<table class="table2" cellspacing="0" cellpadding="3" width="100%"\>
\<tbody\>
\<tr\>

\<td class="top2" colspan="4" height="20"\>
\<table cellspacing="0" cellpadding="0" width="100%" border="0"\>
\<tbody\>
\<tr\>
\<td nowrap="nowrap"\>\<img height="77" alt="" width="80" src="../Images/weath.jpg" /\>\</td\>

\<td nowrap="nowrap" width="5"\>&nbsp\;\</td\>
\<td class="top2" align="center" width="100%" bgcolor="#eddec9"\>
\<div class="TitrNormal" style="direction: ltr" align="center"\>?´U??± U??§U? ?¯?§?±?§U? ?§U??³???¯?§U? U?U??§?´U??§?³U?\</div\>
\</td\>
\</tr\>

\</tbody\>
\</table\>
\</td\>
\</tr\>
\<tr\>
\<td colspan="4"\>&nbsp\;\</td\>

\</tr\>
\<tr\>
\<td width="25%" height="20"\>\<img alt="" src="../Images/bullet.gif" /\>\<a class="linknormal" href="javascript:getIt('http://www.aftab.irhttp://www.aftab.ir/portal/weather/view.php?code=40831','n',450,450)\;"\> ?¢?¨?§?¯?§U? \</a\>\</td\>
\<td width="25%" height="20"\>\<img alt="" src="../Images/bullet.gif" /\>\<a class="linknormal" href="javascript:getIt('http://www.aftab.ir/portal/weather/view.php?code=40818','n',450,450)\;"\> ?¢?¨?§?¯U? \</a\>\</td\>

\<td width="25%" height="20"\>\<img alt="" src="../Images/bullet.gif" /\>\<a class="linknormal" href="javascript:getIt('http://www.aftab.ir/portal/weather/view.php?code=99298','n',450,450)\;"\> ?¢?¨ ?¨?± \</a\>\</td\>
\<td width="25%" height="20"\>\<img alt="" src="../Images/bullet.gif" /\>\<a class="linknormal" href="javascript:getIt('http://www.aftab.ir/portal/weather/view.php?code=40755','n',450,450)\;"\> ?¢?¨?¹U?U? \</a\>\</td\>
\</tr\>

\<tr\>
\<td width="25%" height="20"\>\<img alt="" src="../Images/bullet.gif" /\>\<a class="linknormal" href="javascript:getIt('http://www.aftab.ir/portal/weather/view.php?code=40709','n',450,450)\;"\> ?¢?³???§?±?§ \</a\>\</td\>
\<td width="25%" height="20"\>\<img alt="" src="../Images/bullet.gif" /\>\<a class="linknormal" href="javascript:getIt('http://www.aftab.ir/portal/weather/view.php?code=99370','n',450,450)\;"\> ?¢U?U??¯?¯U? \</a\>\</td\>

\<td width="25%" height="20"\>\<img alt="" src="../Images/bullet.gif" /\>\<a class="linknormal" href="javascript:getIt('http://www.aftab.ir/portal/weather/view.php?code=99309','n',450,450)\;"\> ?¢U?U? \</a\>\</td\>
\<td width="25%" height="20"\>\<img alt="" src="../Images/bullet.gif" /\>\<a class="linknormal" href="javascript:getIt('http://www.aftab.ir/portal/weather/view.php?code=99310','n',450,450)\;"\> ?¢U??¬ \</a\>\</td\>
\</tr\>

\<tr\>
\<td width="25%" height="20"\>\<img alt="" src="../Images/bullet.gif" /\>\<a class="linknormal" href="javascript:getIt('http://www.aftab.ir/portal/weather/view.php?code=99539','n',450,450)\;"\> ?§?¨?±U?U?U? \</a\>\</td\>
\<td width="25%" height="20"\>\<img alt="" src="../Images/bullet.gif" /\>\<a class="linknormal" href="javascript:getIt('http://www.aftab.ir/portal/weather/view.php?code=40890','n',450,450)\;"\> ?§?¨U?U?U??³U? \</a\>\</td\>

\<td width="25%" height="20"\>\<img alt="" src="../Images/bullet.gif" /\>\<a class="linknormal" href="javascript:getIt('http://www.aftab.ir/portal/weather/view.php?code=40769','n',450,450)\;"\> ?§?±?§U? \</a\>\</td\>
\<td width="25%" height="20"\>\<img alt="" src="../Images/bullet.gif" /\>\<a class="linknormal" href="javascript:getIt('http://www.aftab.ir/portal/weather/view.php?code=88107','n',450,450)\;"\> ?§?±?¯?¨U?U? - U??±U??¯?¯?§U? \</a\>\</td\>
\</tr\>

\<tr\>
\<td width="25%" height="20"\>\<img alt="" src="../Images/bullet.gif" /\>\<a class="linknormal" href="javascript:getIt('http://www.aftab.ir/portal/weather/view.php?code=40708','n',450,450)\;"\> ?§?±?¯?¨U?U? \</a\>\</td\>
\<td width="25%" height="20"\>\<img alt="" src="../Images/bullet.gif" /\>\<a class="linknormal" href="javascript:getIt('http://www.aftab.ir/portal/weather/view.php?code=40799','n',450,450)\;"\> ?§?±?¯?³???§U? \</a\>\</td\>

\<td width="25%" height="20"\>\<img alt="" src="../Images/bullet.gif" /\>\<a class="linknormal" href="javascript:getIt('http://www.aftab.ir/portal/weather/view.php?code=40712','n',450,450)\;"\> ?§?±U?U?U?U? \</a\>\</td\>
\<td width="25%" height="20"\>\<img alt="" src="../Images/bullet.gif" /\>\<a class="linknormal" href="javascript:getIt('http://www.aftab.ir/portal/weather/view.php?code=99445','n',450,450)\;"\> ?§?²U??§ \</a\>\</td\>
\</tr\>

\<tr\>
\<td width="25%" height="20"\>\<img alt="" src="../Images/bullet.gif" /\>\<a class="linknormal" href="javascript:getIt('http://www.aftab.ir/portal/weather/view.php?code=40779','n',450,450)\;"\> ?§?³U??§U? ?¢?¨?§?¯ \</a\>\</td\>
\<td width="25%" height="20"\>\<img alt="" src="../Images/bullet.gif" /\>\<a class="linknormal" href="javascript:getIt('http://www.aftab.ir/portal/weather/view.php?code=40800','n',450,450)\;"\> ?§?µU?U??§U? \</a\>\</td\>

\<td width="25%" height="20"\>\<img alt="" src="../Images/bullet.gif" /\>\<a class="linknormal" href="javascript:getIt('http://www.aftab.ir/portal/weather/view.php?code=40802','n',450,450)\;"\> ?§?µU?U??§U? - ?´?±U? \</a\>\</td\>
\<td width="25%" height="20"\>\<img alt="" src="../Images/bullet.gif" /\>\<a class="linknormal" href="javascript:getIt('http://www.aftab.ir/portal/weather/view.php?code=99496','n',450,450)\;"\> ?§?µU?U??§U? - ?µU??¹??U? \</a\>\</td\>
\</tr\>


\<tr\>
\<td height="20"\>
\<div class="Time" align="center"\>U?U??¨?¹ : ?¢U????§?¨\</div\>
\</td\>
\<td height="20"\>&nbsp\;\</td\>

\<td height="20"\>&nbsp\;\</td\>
\<td height="20"\>&nbsp\;\</td\>
\</tr\>
\</tbody\>
\</table\>

\</td\>
\</tr\>
\</tbody\>
\</table\>\</div\>;>>;;>;>>;>>;t<;l<i<1>;i<3>;>;l<t<p<l<innerhtml;>;l<U?U??§?´U??§?³U?;>>;;>;t<p<l<innerhtml;>;l<&nbsp\;\<Div Class=MainMenu style=Direction:Rtl\;\>\<a Class=Menu Href='Default.aspx' style=border-top-style:solid\;\>?¨?±?¯?´??\</a\>\<a Class=Menu Href=Default.aspx?Mode=Wmo&Part=IR\>U?U??§?´U??§?³U? ?§U??±?§U?\</a\>\<a Class=Menu Href=Default.aspx?Mode=Wmo&Part=Wld\>U?U??§?´U??§?³U? ?¬U??§U?\</a\>\</div\>&nbsp\;;>>;;>;>>;>>;>>;>¤$«ï6b?%¨??r;¨???البته طولانی تر بود و من خیلیهاش رو حذف کردم. اما کاملش رو برات ضمیمه کردم.

odiseh
شنبه 09 آذر 1387, 12:55 عصر
ایشون کدهای جاوا اسکریپت رو از طریق تابع get_HTML در زمان اجرا میسازن. تعداد این کدهای جاوا اسکریپت که اکثراً document.getElementById هستن بر اساس تعداد موارد پیدا شده است. کدهایی Client-based ای که در زمان اجرا ایجاد میشن هم در ViewState ذخیره میشن.
این کار غیر حرفه ای باعث شده که حجم ViewState به 730/5 کیلو بایت!!! برسه و بالطبع حجم صفحه به شدت افزایش پیدا کنه.

موفق باشید.

خوب در اینصورت راه حل جایگزین چیه استاد؟

Behrouz_Rad
شنبه 09 آذر 1387, 13:14 عصر
جوابی که دادم مال تاپیک ذیل بود! به دلیل تشابه، پست به اشتباه در این تاپیک اومد.
http://barnamenevis.org/forum/showthread.php?t=133034

این دوستمون هم کدها رو احتمالاً در زمان اجرا میسازن. نباید این کار رو انجام داد. باید نحوه ی کار رو تغییر بدن.

موفق باشید.