امروزه تکنولوژی Ajax به سرعت در حال رشد است این تکنولوژی از ترکیب javascript پیشرفته و xml ایجاد می شود با این تکنولوژی می توان بدون باز گذاری مجدد یک page تغییرات یا اطلاعات را به سرور فرستاد
برای اطلاعات بیشتر در مورد ajax به می توانید به این لینک مراجعه کنید
برای درس امروز حتما در درس قسمت قبل را کامل مطالعه کنید
برای شروع ما باید یک XMLHttpRequest را ایجاد کنیم برای این کار مانند درس قبل ما از کتابخانه ی MSXML استفاده می کنیم برای مثال :
کد:
var oHttp = new ActiveXObject("Microsoft.XMLHttp");
مانند درس قبل در اینجا هم ما 2 تا ورژن داریم
همان تابع create document جلسه قبل را برای این قسمت هم ایجاد می کنیم
کد:
function createXmlHttpRequest()
{
var versions =
[
"MSXML2.XmlHttp.6.0",
"MSXML2.XmlHttp.3.0"
];
for (var i = 0; i < versions.length; i++)
{
try
{
var oHttp = new ActiveXObject(versions[i]);
return oHttp;
}
catch (error)
{
//do nothing here
}
}
return null;
}
مثل مبحث قبل این object هم در 2 گونه است وبرای تشخیص آن هم 2 روش وجود دارد
روش اول : استفاده از window.XMLHttpRequest
در ورژن های جدید IE یعنی از ورژن 6 به بعد window.XMLHttpRequest در IE قرار گرفت ولی از همان ابتدا در opera ,firefoxt,safari وجود داشت در ورژن های قبل window.ActiveXObject
وجود داشت حال با قرار گرفتن window.ActiveXObject کافی است تابع XMLHttpRequest() را برای ساخت object مورد نظرمان استفاده کنیم
که کد آن به صورت زیر است
کد:
function createXmlHttpRequest()
{
if (window.XMLHttpRequest)
{
var oHttp = new XMLHttpRequest();
return oHttp;
}
else if (window.ActiveXObject)
{
var versions =
[
"MSXML2.XmlHttp.6.0",
"MSXML2.XmlHttp.3.0"
];
for (var i = 0; i < versions.length; i++)
{
try
{
var oHttp = new ActiveXObject(versions[i]);
return oHttp;
}
catch (error)
{
//do nothing here
}
}
}
return null;
}
روش دوم : استفاده از یک خاصیت در قسمت body است به نام maxHeight
که کد آن به صورت زیر است
کد:
if (typeof document.body.style.maxHeight != "undefined") {
// IE 7, mozilla, safari, opera 9
} else {
// IE6, older browsers
امروز از این روش برای تشخیص نوع browser استفاده می کنند
استفاده از XMLHttpRequest Object
خوب بعد از ساخته شدن XMLHttpRequest Object نوبت به استفاده کردن از آن است
برای اولین قدم ما از متد open استفاده می کنیم
این متد 3 تا ورودی می گیرد
کد:
oHttp.open(requestType, url, async);
اولی نوع فرستادن است که می تواند get یا post باشد
دومی به آدرسی که باید فرستاده شود
سومی هم همگام و ناهمگام بودن است که توضیح داده شد در مبحث قبلی (اجرا شدن کل کدها سپس بارگذاری صفحه یا بارگذاری صفحه بعد اجرا شدن کد ها )
کد:
var oHttp = createXmlHttpRequest();
oHttp.open("GET", "http://localhost/myTextFile.txt", false);
oHttp.send(null);
متد send یک ورودی می گیرد که آن هم null است
هر XMLHttpRequest یک وضیعت پاسخ دهی دارد این شامل خصوصیت کدوضعیت HTTP باسرویس دهنده است اگر درخواست پیدا شد این وضیعت 200 است اگر پیدا نشد این وضیعت 404 است
برای مثال :
کد:
var oHttp = createXmlHttpRequest();
oHttp.open("GET", "http://localhost/myTextFile.txt", false);
oHttp.send(null);
if (oHttp.status == 200)
{
aler t("The text file was found!");
}
else if (oHttp.status == 404)
{
aler t("The text file could not be found!");
}
else
{
aler t("An error occurred while attempting to retrieve the file!");
}
خوب حالا بیاین براش یک کلاس بنویسیم
کد:
function HttpRequest(sUrl, fpCallback)
{
this.request = this.createXmlHttpRequest();
this.request.open(“GET”, sUrl, true);
var tempRequest = this.request;
function request_readystatechange()
{
if (tempRequest.readyState == 4)
{
if (tempRequest.status == 200)
{
fpCallback(tempRequest.responseText);
}
else
{
ale rt("An error occurred trying to contact the server.");
}
}
}
this.request.onreadystatechange = request_readystatechange;
}
کلاس نوشتن هم که در درس های قبل گفته شده برای پیدا کردن لینکش به بالای صفحه برین
_________________ عمار پتکی
در نبود آنچه که من نیستم, آنچه که هستم نیست
آنگاه که نمادی از امید در فنجان قهوه ات نمی بینی وآنگاه که در طالع این ماهت نیز خبری از معجزه نیست بدان که خداوند همه چیز را به دست خودت سپرده تا بهترين را به ارمغان بياوري
تشکرها از این تاپیک
melisa(شنبه 8 فروردین 1388 - 10:44), Coward از این تاپیک تشکر میکنم
خوب دوستان dpi خودم آموزش javascript هم تمام شد چند وقت پیش یک گشت و گذاری توی نت کردم و متوجه شدم ما اولین سایتی هستیم که آموزش javascript را به صورت کامل و فارسی در سایتمون قرار دادیم و یک آموزش خوبی برای دوستانی که می خواهند با این زبان آشنا بشوند شده انشالا که دوستان هر کم کاستی داشته اول اعلام کنند که درستش کنیم و دوم به بزرگی خودشان ببخشند
چند روز دیگه کل این آموزش ها را به صورت pdf کرده و در سایت قرار می دهیم
انشالا در فکر گذاشتن آموزش پیشرفته javaScript هستم که چند وقت دیگر استارت آن را هم می زنم خداوند کمک کنه و آن را هم تمام کنیم و تبدیلش کنیم به یک مرجع کامل و حرفه ای javascript فارسی در ایران
به امید آن روز
موفق باشید و عید خوبی داشته باشید
عمار پتکی 87/1/11
_________________ عمار پتکی
در نبود آنچه که من نیستم, آنچه که هستم نیست
آنگاه که نمادی از امید در فنجان قهوه ات نمی بینی وآنگاه که در طالع این ماهت نیز خبری از معجزه نیست بدان که خداوند همه چیز را به دست خودت سپرده تا بهترين را به ارمغان بياوري
مشاهده موضوع بعدی مشاهده موضوع قبلی
شما نمی توانید در این بخش موضوع جدید پست کنید شما نمی توانید در این بخش به موضوعها پاسخ دهید شما نمی توانید موضوع های خودتان را در این بخش ویرایش کنید شما نمی توانید موضوع های خودتان را در این بخش حذف کنید شما نمی توانید در این بخش رای دهید شما نمیتوانید به نوشته های خود فایلی پیوست نمایید شما نمیتوانید فایلهای پیوست این انجمن را دریافت نمایید
:: DpiGuide.Com Forums ::
تمام زمانها بر حسب GMT + 3.5 Hours میباشند