PDA

View Full Version : اجرای دو بار page load صفحه



morteza_mokhtari
دوشنبه 27 خرداد 1392, 00:18 صبح
سلام دوستان بنده تویه سایتم یه قسمتی دارم که تعداد بازدید از یک مطلب رو نشون میدم .کدش رو تویه رویداد page_load گذاشتم که با هر بار رفرش صفحه یه دونه به تعداد بازدید از صفحه اضافه بشه.ولی نمی دونم چرا با هر بار رفرش صفحه 2 تا اضافه می شه.تویه کدها هم هرچی گشتم که نکنه دو بار کد اضافه به تعداد بازدید رو گذاشته باشم پیدا نکردم.یکی دیگه از صفحات هم به همین صورته و دو تا دو تا اضافه میشه.البته هنوز تست نکردم ببینم که تمام صفحات همین طور هست یا نه؟ فکر کنم رویداد page_load دو بار اجرا میشه.از دوستان کسی تا حالا با همچین مشکلی برخورده باشه و یا آیا راه حلی به نظرتون میرسه که بندم بررسی بکنم ببینم مشکل از کجاست.با تشکر

mehrzad_ali
دوشنبه 27 خرداد 1392, 00:25 صبح
breakPoint بذار

mehrtash3000
دوشنبه 27 خرداد 1392, 02:50 صبح
کد اضافه کردن آمار بازدید رو تو
if (!IsPostBack)
{
}
بگذار

ali9698
دوشنبه 27 خرداد 1392, 10:13 صبح
کدت رو اگه ممکنه بزار

morteza_mokhtari
دوشنبه 03 تیر 1392, 12:19 عصر
با عرض سلام مجددا به دوستان عزیز بنده هنوز مشکل حل نشده.کدی که تویه سایت گذاشتم اینه.در ضمن از تکنولوژی Linq استفاده میکنم


var listq = (from q in database.Articles_Articles
where q.ArticleID == articleID && q.IsDeleted == false
orderby q.ArticleID descending
select q);
listq.First().ViewCount = listq.First().ViewCount + 1;
database.SubmitChanges();

موارد بالا رو هم تست کردم ولی نتونستم مشکل رو بفهمم که از کجاست.فکر کنم که page_load دوبار اجرا میشه.البته تویه 2 تا سایتم همین مشکل رو دارم.لطف کنید راهنمایی کنید که ممکنه از کجاها باشه.آیا ممکنه تغییراتی اعمال کرده باشم که Page_load دو بار اجرا بشه.با تشکر.

Bojbaj
دوشنبه 03 تیر 1392, 14:32 عصر
توی فایل Global تغییراتی دادی ؟
از Route برای آدرس ها استفاده کردی ؟

morteza_mokhtari
دوشنبه 03 تیر 1392, 19:57 عصر
توی فایل Global تغییراتی دادی ؟
از Route برای آدرس ها استفاده کردی ؟

بله از url routing استفاده کردم.Global رو هم نمیدوم.فکر نکنم ولی باز هم یک بررسی میکنم.

Bojbaj
دوشنبه 03 تیر 1392, 22:17 عصر
وقتی از routing استفاده میکنی باید سعی کنی آدرس ها رو کامل بدی
آدرس هایی که نسبی باشن این مشکل رو ایجاد میکنن.
مثلا :

../script.js

morteza_mokhtari
دوشنبه 03 تیر 1392, 23:53 عصر
ممنون از اینکه پاسخ دادید.منظورتون رو درست متوجه نشدم میشه لطف کنید بیشتر توضیح بدهید.اینکه شما میگید آدرس هایی که نسبی باشند این مشکل رو ایجاد میکنند چه ربطی به اجرا شدن page_load داره؟ممنون یه کم بیشتر توضیح بدهید.اصلا این سایت من قاطی کرده.گاهی موقع ها بیشتر از دو تا اضافه میکنه گاهی موقع ها 2 تا اضافه میکنه و گاهی هم یکی.ولی بیشتر موقع ها 2 تا اضافه میکنه..بنده آدرس های سایتم به این صورت هست.


/script/script.js

Bojbaj
سه شنبه 04 تیر 1392, 00:19 صبح
الان این آدرس دهی شما نسبی هستش
چون داری آدرس ها رو تغییر میدی، وقتی به این آدرس میرسه میخواد اونم عوض کنه
حالا هر چند تا از این نوع آدرس دهی داشته باشی همونقدر تکرار هم داری ( یعنی مثلا 2 بار داشته باشی 2 بار Page Load اجرا میشه و صفحه رفرش میشه )
دو راه داری
اولی اینکه آدرس ها رو کامل بدی :

http://yoursite.com/script/script.js

دومی اینکه از ignore استفاده کنی و بگی که برای تغییر آدرس توی Route یه سری چیزها رو نادیده بگیره.
در مورد Ignore توی Route بگردی توضیح و مثال زیاده . مثلا میتونی یه فایل رو نادیده بگیری یا کل یه فولدر یا هر چی که میخوای.

morteza_mokhtari
سه شنبه 04 تیر 1392, 16:16 عصر
با عرض تشکر از شما.دوست عزیز بنده کدهای زیر رو تویه سایتم گذاشم ولی مشکل هنوز حل نشده.فکر کنم مشکل از همین url routing باشه.تویه یک صفحه ای دیگه ای که از url routing استفاده نکردم تست کردم و هیچ مشکلی نداره و یه دونه یه دونه اضافه میکنه.ولی تویه صفحاتی که url routing دارن دو تا دو تا اضافه میشه.ممنون میشم راهنمایی کنید.



void registerRoute(System.Web.Routing.RouteCollection routes)
{

routes.RouteExistingFiles = false;
routes.Ignore("{resource}.axd/{*pathInfo}");

routes.Ignore("{*alljs}", new { alljs = @".*\.js(/.*)?" });
routes.Ignore("{*allcss}", new { allcss = @".*\.css(/.*)?" });
//routes.Ignore("{folder}/{*pathInfo}", new { folder = "content" });
routes.Ignore("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" });
routes.Ignore("{*alljpg}", new { alljpg = @".*\.jpe?g" });
routes.MapPageRoute("Home", "Index", "~/index.aspx");
routes.MapPageRoute("HomePage", "page/{PageID}", "~/index.aspx");
routes.MapPageRoute("CategoryPageID", "Category/{CategoryID}/Page/{PageID}", "~/index.aspx");
routes.MapPageRoute("Page", "Search/{q}/page/{PageID}", "~/index.aspx");
routes.MapPageRoute("Post", "Post/{Postid}/{PostName}", "~/posts.aspx");
routes.MapPageRoute("UserEdit", "UserEdit/{Mode}/{Postid}", "~/UsersControlPanel.aspx");
routes.MapPageRoute("postPageing", "User/Page/{Pageid}", "~/UsersControlPanel.aspx");
routes.MapPageRoute("Users", "User", "~/UsersControlPanel.aspx");
routes.MapPageRoute("BrowseeFourms", "forums/BrowseForums/{FID}", "~/forums/BrowseForums.aspx");
routes.MapPageRoute("ShowThread", "forums/ShowThread-{tid}.aspx", "~/forums/ShowThread.aspx");
routes.MapPageRoute("EnterTopic", "forums/EnterTopic/{FID}", "~/forums/EnterTopic.aspx");
routes.MapPageRoute("ShowProfile", "forums/ShowProfile/{uid}", "~/forums/ShowProfile.aspx");
routes.MapPageRoute("Polls", "Polls/{QID}", "~/Polls.aspx");
routes.MapPageRoute("MailVerify", "MailVerify/{mode}/{UrlID}", "~/mailverify.aspx");
routes.MapPageRoute("ShowMessage", "forums/ShowMessage/{mid}", "~/forums/ShowMessage.aspx");
routes.Ignore("{resource}.axd/{*pathInfo}");

}

void Application_Start(object sender, EventArgs e)
{

// Code that runs on application startup
Application["OnlineUsers"] = 0;
registerRoute(System.Web.Routing.RouteTable.Routes );




}

Bojbaj
سه شنبه 04 تیر 1392, 16:33 عصر
به نظرم شما اول از همه چک کن ببین برای کدوم فایل این مشکل ایجاد میشه.
مثلا تمام فایل های js رو کامنت کن، یا تمام استایل ها رو، بعد مه متوجه شدی مشکل از کدومه بیا و اینجا اضافه کن.

morteza_mokhtari
سه شنبه 04 تیر 1392, 18:16 عصر
با تشکر از شما.مشکل رو بنده پیدا کردم ببنید اگه url صفحه یک پارامتر داشته باشه یه دونه یه دونه اضافه میشه.اما وقتی که دو تا پارامتر داشته باشه دو تا دو تا اضافه میشه.
مثلا


برای این url هیچ مشکلی نداره
routes.MapPageRoute("HomePage", "page/{PageID}", "~/index.aspx");
اما برای این url
routes.MapPageRoute("Post", "Post/{Postid}/{PostName}", "~/posts.aspx");
دو بار page_load اجرا میشه.



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

Bojbaj
چهارشنبه 05 تیر 1392, 00:06 صبح
بله دقیقا مشکل از همینه. بنده هم عرض کردم به همین خاطر وقتی با آدرس های نسبی برخورد میکنه دوبار میفرسته
اگه تریس کنی برنامه رو یه بار یکی از پارامتر ها ( معمولا پارامتر دوم ) رو یه چیز غیر طبیعی میفرسته. که دقیقا مشکلت همونه.
مثلا برای من پارامتر دوم باید یه کد شهر میبود ولی بجاش مقدار User.css توش ذخیره می شد که بعدا متوجه شدم به خاطر نوع آدرس دهی بوده.
من خودم روی پروژه قبلی این مشکل رو داشتم . امیدوارم شما هم بتونی مشکل رو پیدا کنی :)

morteza_mokhtari
چهارشنبه 05 تیر 1392, 00:38 صبح
شما کامل درست عرض میکنید بنده یه تاپیک دیگه ای نوشتم در مورد خطاهای سایتم. که مشکل دقیقا همین چیزی هست که شما میگید که پارامتر دوم یه چیز نامربوطی رو میفرسته و باعث خطا میشه. لطف کنید نحوه اصلاح رو هم بیان کنید.تاپیکی رو هم که نوشتم اینه
http://barnamenevis.org/showthread.php?403333-%DA%A9%D9%85%DA%A9-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%B1%D9%81%D8%B9-%D8%AE%D8%B7%D8%A7%DB%8C-%D8%B3%D8%A7%DB%8C%D8%AA

morteza_mokhtari
پنج شنبه 06 تیر 1392, 11:01 صبح
سلام بنده مشکل رو پیدا کردم ماله این خط هستش



<script type='text/javascript' src="/Scripts/azan.js">
</script>
<script language="javascript" type="text/javascript">
function pz() { }; init(); document.getElementById('cities').selectedIndex = 4; coord(); main();
</script>


باید چطوری اصلاحش کنم . با تشکر

h_r_sh
جمعه 14 تیر 1392, 03:36 صبح
همونطور که گفتن، مربوط میشه به تغییر آدرس ها در URL Routing و آدرس های فایلهای جاوا.