نمایش نتایج 1 تا 3 از 3

نام تاپیک: تفاوت Response.Redirect با Server.Transfer و Server.Execute

  1. #1

    تفاوت Response.Redirect با Server.Transfer و Server.Execute

    سلام

    لطفا کسانی که واقعا کار کرده اند و نتیجه رو کامل متوجه شدند من رو راهنمایی کنند:

    فرق Response.Redirect با server.trasfer و server.Execute چیه؟ کدوم بار کمتری در شرایطی که میخواهیم فقط به صفحه دیگری رجوع کنیم ، روی سرور می اندازد؟

    با تشکر فراوان

  2. #2
    Server.Transfer یکی از متدهایی هست که به متدهای موجود در ASP 2.0 اضافه و به هنگام ارائه ASP 3.0 معرفی شد . پیش از این در ASP 2.0 برای انتقال به صفحه‌ای دیگر از متد Response.Redirect استفاده می‌شد ( اگرچه در نسخه 3 همچنان امکان استفاده از متد قدیمی وجود داره ) که در نسخه‌ی جدید این روند با استفاده از متد Server.Transfer هم انجام میشه .

    به طور خیلی خلاصه وقتی از Response.Redirect استفاده می‌کنید در واقع مراحل زیر طی می‌شوند :
    1. ارسال پیامی مبنی بر لود آدرس URL‌ جدید به مرورگر وب دستگاه کاربر ( کلاینت )
    2. دریافت پیام توسط مرورگر وب دستگاه کاربر ( کلاینت )
    3. اعلام درخواست دریافت اطلاعات آدرس جدید به سرور
    4. پردازش درخواست ارسالی در سرور و ارسال اطلاعات مربوطه ( کدهای HTML صفحه‌ی جدید ) به مرورگر وب دستگاه کاربر ( کلاینت )
    واضحه که برای اجرای یک دستور و رسیدن به هدف اصلی بار زیادی به شبکه وارد میشه و در سرعت برنامه هم تأثیر منفی خودش رو میذاره . برای جلوگیری از تحمیل بار اضافی بهتره از Server.Transfer استفاده کنید . با استفاده از این متد به جای اینکه درخواست دریافت اطلاعات صفحه‌ی جدید از کلاینت ارسال بشه ، مستقیماً در سرور اعلام نیاز برای تغییر دستورات اجرا شده به دستورات صفحه مورد نظر انجام می‌گیره . یعنی در واقع مراحل یک ، دو و سه که در بالا بهشون اشاره شد حذف می‌شوند .

    موقع استفاده از Server.Transfer به این موارد دقت کنید که :
    1. هنگام استفاده از این متد اگرچه آدرس صفحه در پشت صحنه تغییر کرده و پردازش‌های لازم روی فایل با آدرس جدید صورت می‌گیره ولی آدرس نمایش داده شده در نوار آدرس مرورگر وب همان آدرس ابتدایی خواهد بود . ( چون هیچگونه پیامی مبنی بر تغییر آدرس به دستگاه کاربر ارسال نمیشه )
    2. زمانی می‌تونید از این متد استفاده کنید که صفحه‌ی مقصدتون برای انتقال جزوی از سایت خودتون باشه ، به این معنی که نمی‌تونید مثلاً به سایت یاهو از این طریق لینک کنید . ( دلیلش هم کاملاً روشنه ! )
    در مورد متد Server.Execute هم باید بگم که ربطی به دو متد قبل نداره . در واقع این متد کاری که انجام میده مشابه includeها هست ( با کمی تفاوت ) . وقتی در یک صفحه از این متد استفاده می‌کنید ، دستورات فایل اصلی شما تا رسیدن به این متد اجرا می‌شوند ، سپس کدهای موجود در آدرس مشخص شده ( فایل اشاره شده با استفاده از این متد ) اجرا می‌شوند و در آخر ( پس از اجرای آخرین دستور فایل اشاره شده ) ادامه دستورات فایل ابتدایی اجرا می‌گردند .

    برای مثال فرض کنید دو فایل file1.asp و file2.asp داریم . دستورات هر فایل به این شکل است :
    file1.asp
    Test1 (File1)
    <%Server.Execute " file2.asp"%>


    Test3 (File1)
    file2.asp
    Test2 (File2)
    با اجرای فایل اول ( file1.asp ) مشاهده می‌کنید که خروجی زیر نمایش داده میشه :
    Test1 (File1)
    Test2 (File2)
    Test3 (File1)
    یعنی ابتدا خط اول از فایل اول اجرا میشه ، سپس اجرای دستورات فایل دوم آغاز میشه و بعد از پایان کار فایل دوم ، به فایل اول بازگشته ، ادامه دستورات اجرا می‌شوند .


    امیدوارم با خوندن مطالب بالا به نتیجه مورد نظرت رسیده باشی .
    آخرین ویرایش به وسیله M-Gheibi : سه شنبه 03 بهمن 1385 در 22:37 عصر دلیل: تصحیح نگارشی

  3. #3

    نقل قول: تفاوت Response.Redirect با Server.Transfer و Server.Execute

    ممنون از راهنمایی
    همانطور که گفتین اگر از متد Server.Transfer استفاده کنم آدرس بار تغییر نمیکنه . این مشکل رو چطور حل کنم.

تاپیک های مشابه

  1. معادل دستور Server.Execute در javascript
    نوشته شده توسط alireza244 در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: جمعه 20 مهر 1386, 13:03 عصر
  2. server &response
    نوشته شده توسط papa_fal در بخش ASP.NET Web Forms
    پاسخ: 4
    آخرین پست: سه شنبه 07 شهریور 1385, 10:43 صبح
  3. Server.Execute
    نوشته شده توسط alireza244 در بخش ASP.NET Web Forms
    پاسخ: 2
    آخرین پست: شنبه 04 شهریور 1385, 07:41 صبح
  4. تفاوت Server.Transfer با Response.Redirect
    نوشته شده توسط Behsharp در بخش ASP.NET Web Forms
    پاسخ: 2
    آخرین پست: چهارشنبه 14 دی 1384, 21:15 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •