PDA

View Full Version : ashx چیست



ehsan2007
پنج شنبه 13 دی 1386, 10:48 صبح
تو فایل با پسوند ashx چه چیزایی میشه قرار داد و به چه درد میخوره
تنها اطلاعاتی که دارم مخصوص صفحات aspx که توش استایل کد های جاوا اسکریپت برای اجرای فرمانهای آجاکس قرار داده میشه
و یک سوال دیگم که داشتم اینکه به سایت mihanblg.ir
برید اگه کدهای سورس صفحرو ببینید تقریبا هیچ کد html نمیبینید این کارو با همین فایل ashxانجام داده اگه اشتباه نکنم
حالا سوالم آیا صفحاتو توی یک فیلد دیتابیس کدشو ذخیره کرده و هنگام باز کردن صفحه اونارو فراخانی میکنه یا نه

Behrouz_Rad
پنج شنبه 13 دی 1386, 12:06 عصر
ashx ها هندلرهایی برای پردازش درخواست ها و در صورت نیاز برگشت نتیجه هستند.
میهن بلاگ که مثال زدی، نمونه ی خوبی برای کاربرد ashx هاست.
میهن بلاگ از AJAX برای بارگذاری صفحه استفاده می کنه. در ASP.NET برای اینکه بتونی یک صفحه رو به مرور لود کنی، نیاز به استفاده ی همزمان AJAX و Http Handler ها داری.
دوست و برادر ما، علیرضا عسگری (برنامه نویس میهن بلاگ) که چند وقتی هست جاش در این سایت خالیه نیز به همین شکل عمل کرده.
بهتره کمی روش کار میهن بلاگ رو بررسی و آنالیز کنیم تا بهتر به موضوع پی ببری.
اگر به کدهای HTML صفحه ی اول میهن بلاگ دقت کنی، فایل engine.ashx رو در پوشه ی Java میبینی.
برای شروع، وارد آدرس http://www.mihanblog.ir/Java/engine.ashx بشو.
علیرضا عسگری دوست داشته که فایل دربرگیرنده ی کدهای جاوا اسکریپتش رو engine.ashx بگذاره.
تو هم می تونی نام و پسوند اون رو هر چیز دلخواهی بگذاری.
در این فایل کدهای جاوا اسکریپت زیادی می بینی که وظیفه ی اصلیشون، بارگذاری تدریجی صفحه است.
اما این بارگذاری تدریجی به چه شکل انجام میشه؟
اگر به اون کدها دقت کنی، میبینی که فایلی با نام worker.aspx در مسیر soucket وجود داره که نقش Http Handler مار رو بازی می کنه. به عبارت ساده تر، در فواصل زمانی مشخص، با استفاده از AJAX، درخواستی برای فایل worker.aspx فرستاده میشه و این فایل، محتویات HTML قسمت درخواستی رو برگشت میده و این محتویات با جاوا اسکریپ در مکان مورد نظر قرار میگیرن.
اصل کار ساده ست.
به عنوان مثال، صفحه ی worker.aspx، یک Query String با نام aid که مشخه ی قسمت مورد نظر هست رو می پذیره و کدهای HTML اون قسمت رو برگشت میده.
برای یک نمونه ی عینی، آدرس http://mihanblog.ir/soucket/worker.aspx?aid=mainmenu رو در آدرس بار وارد کن تا منوی سمت چپ واست نمایش داده بشه. (با پوزش از علیرضا عسگری به خاطر کنجکاوی) ;)

و اما...
برای موردی که مثال زدم، از یک فایل aspx به عنوان Http Handler استفاده شده اما فایل aspx چرخه ی حیات مختلفی داره که باعث تحمیل سربار اضافی به برنامه میشه.
بهترین کار استفاده از یک Http Handler واقعی (با پسوند ashx شناخته میشن) هست که این چرخه های حیات رو نداره و تاثیر زیادی در افزایش کارایی داره.
امیدوارم علیرضا عسگری این پست رو بخونه و از یک Http Handler واقعی استفاده کنه.

موفق باشید.

m.hamidreza
پنج شنبه 13 دی 1386, 12:53 عصر
فایل css رو چرا اینجوری استفاده کرده ؟ دلیلی داشته ؟

Behrouz_Rad
پنج شنبه 13 دی 1386, 14:57 عصر
دوست داشته ;)
امکان داره محتویات فایل CSS رو از جایی می خونه...
اون چیزی هم که واضحه اینه که از یک Compressor برای حذف فاصله بین تگ ها استفاده شده.

موفق باشید.

ehsan2007
پنج شنبه 13 دی 1386, 18:21 عصر
به خاطر توضیح کاملتون جناب راد ممنون