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

اسکریپت Ajax Injector

masihyeganeh

کاربر تازه وارد
تاریخ عضویت
20 جولای 2005
نوشته‌ها
28
لایک‌ها
0
اول سلام.

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

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


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

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

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

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

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

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

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


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


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

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

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

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

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

--

البته الان تا نسخه ی 1.4 بتا ش رو هم نوشتم که وقتی دانلود می کنید، حتماً فایل changelog ش رو بخونید.
 

sIiiS

کاربر قدیمی پرشین تولز
تاریخ عضویت
23 آپریل 2004
نوشته‌ها
4,848
لایک‌ها
181
محل سکونت
اصفهان
ایول آقا خیلی خوب بود، واسه افرادی مثل من که اصلا برنامه نویسی حالیشون نیست و دنبال این چیزا میگردن خیلی مفید بود، ممنون
 

masihyeganeh

کاربر تازه وارد
تاریخ عضویت
20 جولای 2005
نوشته‌ها
28
لایک‌ها
0
برا چی از ajax استفاده میکنیم؟

برا کاهش مصرف پهنای باند سایت + افزایش سرعت لود کاربر....

ولی وقتی همه درخواست های اجاکس دوباره بیاد کل صفحات یک سایت رو لود بکنه, با ورق زدن اون سایت بشکل معمولی هیچ فرقی نه در سرعت نه در مصرف پهنای باند نداره!

حالا ضد حال نزنیم... خوبه زحمت کشیدی
آقا من منتظرم ها!
لطفاً توضیح بفرمایید.
 

masihyeganeh

کاربر تازه وارد
تاریخ عضویت
20 جولای 2005
نوشته‌ها
28
لایک‌ها
0
چرا جواب نمی دید؟
همینجوری یه جمله پروندید؟!؟!

اگر منظوری داشتید خب بگید دیگه!
 

Mehdi

مدیر بازنشسته
تاریخ عضویت
1 آگوست 2004
نوشته‌ها
5,601
لایک‌ها
49
محل سکونت
Anywhere
به نظر منم نمیشه بهش ایجکس گفت , این روش با رفرش شدن صفحه چه فرقی داره ؟
تنها فرقش برا clientside هست !!
 

masihyeganeh

کاربر تازه وارد
تاریخ عضویت
20 جولای 2005
نوشته‌ها
28
لایک‌ها
0
به نظر منم نمیشه بهش ایجکس گفت , این روش با رفرش شدن صفحه چه فرقی داره ؟
تنها فرقش برا clientside هست !!
خب این کارش فقط تغییر client side ه دیگه.

شما فکر کن که یه سایت ساخته شده داری، وقتی بخوای آجاکسیش کنی، باید هم تو server side تغییر بدی و هم تو client side.
تو client side پیرت در میاد تا همه ی لینک های :
HTML:
<a href="somePage.php">some page</a>
رو بکنی:
HTML:
<a href="#" onclick="someAjaxFunction("somePage.php"); return false;">some page</a>

و کلی چرت و پرت دیگه هم اضافه کنی.

واسه form ها هم همینطور.

خب ولی برای این که client side رو تغییر بدی، کافیه که AjaxInjector رو تو صفحه اضافه کنید (تغییر در 1 خط)

حالا هنوز هم ارزش نداره؟

تو Server Side مثلاً جایی که نوشتی :
PHP:
include("header.php");
به این تغییرش می دی:
PHP:
if (!$_GET["ajaxEnabled"]) include("header.php");

یا یه همچین کار هایی.

اصل ماجرا اینه:
من یه سایت داشتم که می خواستم آجاکسی اش کنم.
حالش رو نداشتم همه ی تغییر ها رو بوجود بیارم، رفتم این رو نوشتم.
بعد از 4 تا از بچه ها پرسیدم که اگر به درد می خوره، بگید تا به صورت پروژخ بدمش بیرون.
اونها هم گفتن بده.
الان هم که 66 تا دانلود شده.
تو 2 تا Forum دیگه ای هم که فرستادم، ملت راضی اند.

حالا نمی دونم چرا شما انقدر ازش بد می گید.

ولی هنوز هم آماده ی دریافت نظرات عزیزان (حتی همین آقایون مخالف!) هستم.
ولی سعی کنید در جها پیشرفت پروژه ایده بدید و نگید که "اه! این چه %^&$ که نوشتی!"

قبلاً متشکرم.

-------

راستی یادم رفت بگم:
یکی از خوبی های این، برای وقتیه که طرف JavaScriptَش غیر فعال باشه یا اصلاً ساپورت نشه (مثلاً موبایل)
این جوری میشه با 1 صفحه، هر دو نفر رو راضی کرد.
همچین کاری رو gmail و بقیه هم انجام دادن.

خدایی خوبه دیگه.
چرا انقدر ایراد می گیرید؟ (نمی گم نگیرید. می گم پیشنهاد سازنده هم بدید)
مرسی
 
Last edited:

ODE112

کاربر قدیمی پرشین تولز
تاریخ عضویت
24 مارس 2006
نوشته‌ها
1,400
لایک‌ها
1,288
محل سکونت
aquarium
Ok غلط کردم!
 

ODE112

کاربر قدیمی پرشین تولز
تاریخ عضویت
24 مارس 2006
نوشته‌ها
1,400
لایک‌ها
1,288
محل سکونت
aquarium
من جلو همه کسایی که میشناسنم ازت معذرت میخوام! :guilty:

اسکریپت خیلی خوبی هم ساختی! :thumbsup:

منم اگه گفتم با حالت معمولی فرقی نداره منظورم برا سایتی بود که از پایه معمولی ساخته شده و طرح و برنامه و هدفی برای اجاکسی کردن اون نداشتن از قبل! و نمیدونستم هدفت فقط این نبوده و بیشتر سرعت دادن به کاره کسی که داره یه سایت اجاکسی میسازه بوده!

بازم معذرت میخوام! اشتباه گرفتم از اول منظورتو! :Snorkle:
 

behnam666

همکار بازنشسته
تاریخ عضویت
21 ژوئن 2007
نوشته‌ها
1,746
لایک‌ها
757
سن
39
محل سکونت
خونمون
دانلودیدم. کارت درسته. :D
 

sIiiS

کاربر قدیمی پرشین تولز
تاریخ عضویت
23 آپریل 2004
نوشته‌ها
4,848
لایک‌ها
181
محل سکونت
اصفهان
آقا یه سوال کلی
میشه اون رو روی اسمارتی هم گسترشش داد ؟
 

masihyeganeh

کاربر تازه وارد
تاریخ عضویت
20 جولای 2005
نوشته‌ها
28
لایک‌ها
0
آقا یه سوال کلی
میشه اون رو روی اسمارتی هم گسترشش داد ؟
منظورتون همون Template بازاره است؟

بله میشه.
فقط باید همون تغییرات رو تو فایل های Templateش بدید.

اگر مشکلی داشتید، در خدمتم.
 

sIiiS

کاربر قدیمی پرشین تولز
تاریخ عضویت
23 آپریل 2004
نوشته‌ها
4,848
لایک‌ها
181
محل سکونت
اصفهان
template بازار دیگه چیه ؟
اسمارتی اسمارتیه دیگه
آخه تغییر توی template ها یه سری قواعد داره اگر نه لود نمیشه
 

masihyeganeh

کاربر تازه وارد
تاریخ عضویت
20 جولای 2005
نوشته‌ها
28
لایک‌ها
0
template بازار دیگه چیه ؟
اسمارتی اسمارتیه دیگه
آخه تغییر توی template ها یه سری قواعد داره اگر نه لود نمیشه
مثلاً اومدم 1 کم خودمونی بشم :دی

نمی دونم.
حال شما همینجوری الکی بکن توش. (به قولی: تیری در تاریکی بنداز)
اگر شد، شد. نشد یه فکری می کنم.
 

neo2

Registered User
تاریخ عضویت
8 آپریل 2005
نوشته‌ها
1,667
لایک‌ها
184
محل سکونت
/cat/etc/passwd/
قابل شما رو نداشت.
بسی باعث دل گرمی شد.

خیلی ممنون. کارهای این شکلی خیلی به عموم کمک میکنن.

از وقتی که برای کار میذارید و Open Source کردن اون ممنونم.

موفق باشید
 

Davoodi_online

کاربر تازه وارد
تاریخ عضویت
26 نوامبر 2005
نوشته‌ها
41
لایک‌ها
1
لینک دانلود توی اون سایت خرابه.
اگر مقدوره لینک مستقیم دانلود رو بزارید ما هم استفاده کنیم.
ممنونم
 

masihyeganeh

کاربر تازه وارد
تاریخ عضویت
20 جولای 2005
نوشته‌ها
28
لایک‌ها
0
لینک که سالمه ولی...
به دلیل تلاش بی وقفه و غرور آفرین مسئولین کشور (از بالا تا پیینش!) برای اثبات این مساله که ما می توانیم، دنیای غرب لطف کرده و ما رو از دسترسی به هر گونه سرویس محروم کرده! و به قول معروف : مرگ بر آمریکا! (3 بار بلند بگو!) :hmm:
 
بالا