اسکریپت Ajax Injector

اول سلام.

آیا تا بحال براتون پیش اومده که بخواهید سایت استاتیکی (منظورم همون HTML ساده است. یا به قولی WEB 1) رو که قبلاً آماده کردید، تبدیل به یه سایت پویا تر (منظورم همون AJAX ه معروفه. یا به قولی WEB 2) کنید؟
برای این کار باید یک تابع تعریف کنید که ارسال آجاکسی رو براتون انجام بده و اون رو تو رویداد onclick همه ی لینک هاتون بذارید :)shock:) و برای تک تک فرم هاتون هم تابع جداگونه بنویسید :)cry:).

اما مشکل با Ajax Injector کاملاً حل میشه. :cool:


فقط با 3 تا قدم ساده، می تونید تموم سایتتون رو آجاکسی کنید. :wink:

قدم اول :
فایل اسکریپت رو به HEAD صفحه تون پیوست کنید.
(دیگه همه بلدند)

HTML:
<script language="javascript" src="AjaxInjector.js" type="text/JavaScript"></script>

قدم دوم :
3 تا تابع هست که باید آخر BODY تون تعریف بشن:
1- تابع onAjaxResponse برای مدیریت کردن جواب آجاکس.
که یک پارامتر داره و اون هم متنی ه که از صفحه ی درخواستی به آجاکس اومده.

2- تابع requestStart که وقتی یک لینک کلیک میشه یا یک فرم ارسال میشه، صدا زده میشه و مثلاً برای ظاهر کردن یک متن Loading استفاده میشه.

3- تابع requestEnd که وقتی جوابی به آجاکس می رسه، صدا زده میشه و مثلاً برای پنهان کردن متن Loading استفاده میشه.

قدم سوم (مهمترین قدم) :
از سایت آجاکسی شده ی خودتون لذت ببرید. :D


همراه فایل اصلی، یک فایل نمونه هم هست که می تونید توضیحات من رو به صورت کد شده توش ببینید. :rose:


ویژگی ها:
* می تونید مقدار onclick لینک ها و onsubmit فرم هایی رو که نمی خوای آجاکسی بشن رو براشون تعریف کنید. یا حداقل به صورت خالی بنویسید. مثال:

HTML:
<a href="..." onclick="">Link</a>

* وقتی که آجاکس به صفحه تون تزریق بشه، با هر بار ارسال درخواست، یک مقدار GET اضافی به نام ajaxEnabled هم می فرسته که در سمت دیگر می تونید بفهمید که این درخواست از یه آجاکس اومده یا نه. (اگر کار کرده باشد، می دونید که خیلی به درد می خوره)
* هنگام ارسال، یک مقدار Random هم می فرسته که کمی جلوی Cache شدن نا خواسته رو می گیره.

تست شده در:
Intenet Explorer (IE) 6.0.2900
FireFox 2.0.0.16
Opera 9.50

لینک پروژه:
http://sourceforge.net/projects/ajaxinjector/

لطفاً نظرات پیشنهادی و گزارش خطاهاتون رو همینجا یا توی سایت پروژه مطرح کنید.
 
ورژن 1.1 بتا همین الان آپلود شد.
یک سری Bug Fix داشته.

توصیه می کنم بگیریدش.
 
آخرین ویرایش:
شرمنده که تاپیک رو میارم بالا ولی...

ورژن 1.2 بتا هم اومد که باگ های مهمی توش Fix شده و کسایی که دانلو کردن، باید دوباره دانلود کنند.
 

Amenocy

Member
اقا من امروز که میخوام از این استفاده کنم فکر کردم باید اون تابع رو تو همه فرم ها فراخوانی کنیم درسته ؟ و به صورت دستی آدرس بدیم ! ؟

اگه میشه در مورد استفاده ازش یکم توضیح بیشتر بده .
 

Amenocy

Member
onAjaxResponse
این رو باید تو تمام لینک ها صورت دستی انجام بدیم . در صورتی که در سیستم های آماده این کار به طور مستقیم انجام پذیر نیست .
 
نه دیگه، تابع onAjaxResponse فقط 1 بار تعریف میشه.
مثلاً میگیم ورودی که اومد، alertش کن.
یا یه div رو تغییر محتوا بده.

دیگه واسه همه نمی خواد.

حالا اگر بخوای واسه هر لینکت بتونی یه کار جدا بکنی، باید منتظر ورژن 1.3 باشی که دارم روش کار می کنم.
 
ورژن 1.3 بتا هم همین الان اومد بیرون.
برید داغ داغ بگیریدش.

2 تا چیز کار راه انداز بهش اضافه کردم.

amin_lni، فکر کنم اون چیزی که می خواستید رو بتونید رو این ورژن پیدا کنید.
 

Amenocy

Member
فکر میکنم نتونستم منظورم رو خوب بگم .

من اگه بخواهم از این تقریبا فریمورک آجاکس شما برای یه CMS مثلا دیتالاف یا یه چیز دیگه استفاده کنم . خب نمیشه !! چون لینک ها از کدهای php خود سی ام اس تولید میشن .

من میخواستم جوری باشه وقتی لود میشه مثل یک فیلتر عمل کنه و لینک های html معمولی رو آجاکس کنه !!

نه اینکه به صورت دستی ست بشه .
 
خب عزیز دل برادر داش حاجی! :)D)

این اسکریپت دقیقاً برای همین منظور نوشته شده دیگه!

خودش اتوماتیک واسه ی همه ی لینک ها اعمال میشه.
فقط با همون 3 تا قدم که بالا توضیح دادم، روی همه ی لینک ها و فرم ها اعمال میشه.

:):cool::wink:
 
آخرین ویرایش:
ورژن 1.4 بتا هم اومد.
کسایی که تو انجمن های خارجی رفت و آمد دارن، لطفاً اونجا هم معرفی اش کنند که شاید به درد 2 نفر در سطح بین المللی هم بخوره.
 

aghahamidgol2

Active Member
من دانلود کردم و بعد از مراحل فوق در صفحه من و لینک هایم تغییری ایجاد نکرد... می شه بگید مشکل از کجاست؟ من می خواستم اینجا اینکار را اعمال کنم :

http://hamid-askari.ir/iran
 

جدیدترین ارسال ها

بالا