اسکریپت Ajax Injector

شروع موضوع توسط masihyeganeh ‏28 ژانویه 2009 در انجمن برنامه‌نویسی با جاوااسکریپت (JavaScript)

  1. masihyeganeh

    masihyeganeh Member

    ارسال‌ها:
    180
    تشکر شده:
    11
    امتیاز دستاورد:
    16
    اول سلام.

    آیا تا بحال براتون پیش اومده که بخواهید سایت استاتیکی (منظورم همون 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/

    لطفاً نظرات پیشنهادی و گزارش خطاهاتون رو همینجا یا توی سایت پروژه مطرح کنید.
     
    نوشته شده توسط masihyeganeh در ‏28 ژانویه 2009
    www.ahvazcity.net، spsgorgan، g4chb0y و 4 نفر دیگر از این ارسال تشکر کرده اند.
  2. Amenocy

    Amenocy Member

    ارسال‌ها:
    231
    تشکر شده:
    54
    امتیاز دستاورد:
    16
    خیلی خوبه که شما دانسته های خودتون رو با همه به اشتراک میگذارید. ممنونم
     
    نوشته شده توسط Amenocy در ‏28 ژانویه 2009
    masihyeganeh از این پست تشکر کرده است.
  3. masihyeganeh

    masihyeganeh Member

    ارسال‌ها:
    180
    تشکر شده:
    11
    امتیاز دستاورد:
    16
    ورژن 1.1 بتا همین الان آپلود شد.
    یک سری Bug Fix داشته.

    توصیه می کنم بگیریدش.
     
    آخرین ویرایش: ‏29 ژانویه 2009
    نوشته شده توسط masihyeganeh در ‏29 ژانویه 2009
  4. masihyeganeh

    masihyeganeh Member

    ارسال‌ها:
    180
    تشکر شده:
    11
    امتیاز دستاورد:
    16
    شرمنده که تاپیک رو میارم بالا ولی...

    ورژن 1.2 بتا هم اومد که باگ های مهمی توش Fix شده و کسایی که دانلو کردن، باید دوباره دانلود کنند.
     
    نوشته شده توسط masihyeganeh در ‏29 ژانویه 2009
  5. Amenocy

    Amenocy Member

    ارسال‌ها:
    231
    تشکر شده:
    54
    امتیاز دستاورد:
    16
    اقا من امروز که میخوام از این استفاده کنم فکر کردم باید اون تابع رو تو همه فرم ها فراخوانی کنیم درسته ؟ و به صورت دستی آدرس بدیم ! ؟

    اگه میشه در مورد استفاده ازش یکم توضیح بیشتر بده .
     
    نوشته شده توسط Amenocy در ‏29 ژانویه 2009
  6. masihyeganeh

    masihyeganeh Member

    ارسال‌ها:
    180
    تشکر شده:
    11
    امتیاز دستاورد:
    16
    کدوم تابع رو؟
     
    نوشته شده توسط masihyeganeh در ‏29 ژانویه 2009
  7. Amenocy

    Amenocy Member

    ارسال‌ها:
    231
    تشکر شده:
    54
    امتیاز دستاورد:
    16
    onAjaxResponse
    این رو باید تو تمام لینک ها صورت دستی انجام بدیم . در صورتی که در سیستم های آماده این کار به طور مستقیم انجام پذیر نیست .
     
    نوشته شده توسط Amenocy در ‏29 ژانویه 2009
  8. masihyeganeh

    masihyeganeh Member

    ارسال‌ها:
    180
    تشکر شده:
    11
    امتیاز دستاورد:
    16
    نه دیگه، تابع onAjaxResponse فقط 1 بار تعریف میشه.
    مثلاً میگیم ورودی که اومد، alertش کن.
    یا یه div رو تغییر محتوا بده.

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

    حالا اگر بخوای واسه هر لینکت بتونی یه کار جدا بکنی، باید منتظر ورژن 1.3 باشی که دارم روش کار می کنم.
     
    نوشته شده توسط masihyeganeh در ‏29 ژانویه 2009
  9. masihyeganeh

    masihyeganeh Member

    ارسال‌ها:
    180
    تشکر شده:
    11
    امتیاز دستاورد:
    16
    ورژن 1.3 بتا هم همین الان اومد بیرون.
    برید داغ داغ بگیریدش.

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

    amin_lni، فکر کنم اون چیزی که می خواستید رو بتونید رو این ورژن پیدا کنید.
     
    نوشته شده توسط masihyeganeh در ‏30 ژانویه 2009
  10. Amenocy

    Amenocy Member

    ارسال‌ها:
    231
    تشکر شده:
    54
    امتیاز دستاورد:
    16
    فکر میکنم نتونستم منظورم رو خوب بگم .

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

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

    نه اینکه به صورت دستی ست بشه .
     
    نوشته شده توسط Amenocy در ‏30 ژانویه 2009
  11. masihyeganeh

    masihyeganeh Member

    ارسال‌ها:
    180
    تشکر شده:
    11
    امتیاز دستاورد:
    16
    خب عزیز دل برادر داش حاجی! :)D)

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

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

    :):cool::wink:
     
    آخرین ویرایش: ‏31 ژانویه 2009
    نوشته شده توسط masihyeganeh در ‏31 ژانویه 2009
  12. masihyeganeh

    masihyeganeh Member

    ارسال‌ها:
    180
    تشکر شده:
    11
    امتیاز دستاورد:
    16
    ورژن 1.4 بتا هم اومد.
    کسایی که تو انجمن های خارجی رفت و آمد دارن، لطفاً اونجا هم معرفی اش کنند که شاید به درد 2 نفر در سطح بین المللی هم بخوره.
     
    نوشته شده توسط masihyeganeh در ‏31 ژانویه 2009
  13. aghahamidgol2

    aghahamidgol2 Active Member

    ارسال‌ها:
    1,944
    تشکر شده:
    181
    امتیاز دستاورد:
    36
    من دانلود کردم و بعد از مراحل فوق در صفحه من و لینک هایم تغییری ایجاد نکرد... می شه بگید مشکل از کجاست؟ من می خواستم اینجا اینکار را اعمال کنم :

    http://hamid-askari.ir/iran
     
    نوشته شده توسط aghahamidgol2 در ‏24 آوریل 2009

به اشتراک بگذارید