DPI Guide Forums-viewtopic-آموزش JavaScript قسمت بیست و هفتم (قسمت پایانی ): Ajax and Remote Scripting 

کاربر گرامی ورود شما را به سایت خیر مقدم عرض میکنیم. جهت استفاده از تمامی امکانات سایت باید عضو شوید. جهت عضویت اینجا را کلیک کنید.



برنامه و بازی برای آیفون
DPI Guide
ورود / ثبت نام
پنج شنبه 7 مرداد 1389
DPIGuide.Com :: مشاهده موضوع - آموزش JavaScript قسمت بیست و ششم : JavaScript And Xml

مشاهده موضوع بعدی
مشاهده موضوع قبلی
ارسال موضوع جدید   پاسخ دادن به این موضوع   تشکر کردن از تاپیک   Printer-friendly version
نویسنده پیام

Calm
Forum Moderator
Forum Moderator


عضو شده در: 6 شهریور 1386
پست: 928
blank.gif


امتیاز: 313
[وضعيت كاربر:آفلاین]

پستتاریخ: چهار‌شنبه 28 اسفند 1387 - 17:09 پاسخگویی به این موضوع بهمراه نقل قول بازگشت به بالای صفحه

قسمت بیست و ششم : JavaScript And Xml
لینک قسمت های قبل

قسمت اول : اصول ابتدایی
قسمت دوم :افزودن جاوا اسکریپت در صفحه
قسمت سوم :متغیر ها در جاوا اسکریپت
قسمت چهارم :انواع عملگرها
قسمت پنجم : عملیات های محاسبه ای
قسمت ششم : تبدیل کردن
قسمت هفتم : کار با آرایه ها
قسمت هشتم : شرط
قسمت نهم : حلقه ها
قسمت دهم : متد(تابع)
قسمت یازدهم : object
قسمت دوازدهم : object (عدد)
قسمت سیزدهم : object (آرایه)
قسمت چهاردهم : Object زمان
قسمت پانزدهم : کلاس در جاوا اسکریپت
قسمت شانزدهم : Bom
قسمت هفدهم : فرم ها
قسمت هجدهم : فرم ها (2)
قسمت نوزدهم : باز کردن یک پنچره جدید
قسمت بیستم : مباحث پیشرفته در string
قسمت بیست و یکم :نکاتی مربوط به زمان و تاریخ
قسمت بیست و دوم : کوکی
قسمت بیست و سوم : Dynamic Html
قسمت بیست و چهارم : کار با CSS
قسمت بیست و پنجم : Dynamic HTML in Modern Browsers

در این قسمت سعی داریم کار با xml را توضیح دهیم در قسمت قبل کمی با xml آشنا شدیم برای شروع این قسمت شما باید حتما درس قسمت قبل را کامل مطالعه کنید و کمی هم بیشتر از زبان xml آگاهی پیدا کنید هر چند سعی می کنم لابه لای مطالب کمی توضیح بدم ولی اصل موضوع javascript است نه xml

ساخت سند xml در browser ها

در browser های مختلف این سند با اسمهای متفاوتی قرار داده شده خوشبتخانه امروزه همه ی browser ها دارای سند های dom و xml هستند و برای استفاده از آنها کافی است اسم آنها را صدا کنیم

بمنظور ايجاد و پردازش يک سند XML ، می بايست از يک پارسر استفاده کرد . پارسر شرکت ماکروسافت، يک عنصر مبتنی بر COM بوده که بهمراه IE نسخه پنج ، ارائه شده است برای browser های دیگر متفاوت است فعلا با IE کار داریم خود این پارسر هم سندهای متفاوتی دارد
حال با استفاده از javascript یک سند xml ایجاد می کنیم

کد:

function createDocument()
{
//Temporary DOM object.
var xmlDoc;
//Create the DOM object for IE
if (window.ActiveXObject)
{
var versions =
[
"Msxml2.DOMDocument.6.0",
"Msxml2.DOMDocument.3.0"
];
for (var i = 0; i < versions.length; i++)
{
try
{
xmlDoc = new ActiveXObject(versions[i]);
return xmlDoc;
}
catch (error)
{
//do nothing here
}
}
}
//no version was found; return null
return null;
}



در کد بالا ما ورژن های مختلف را در یک حلقه قرار دادیم و بوسیله try catch ورژن درست را انتخاب می کنیم
در کل ما می توانستیم به راحتی از کد زیر استفاده کنیم

کد:

var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")


ولی برای حرفه ای تر شدن کار از کد بالا استفاده کردیم حالا برای ساخت یک سند کافی است که تابع خودمان را صدا کنیم

کد:

var xmlDoc = createDocument();
xmlDoc.async = false; //Download XML file first, then load rest of page.
xmlDoc.load("myfile.xml");


کد خط دوم همانطور می بینید این قابلیت را ایجاد کرده که اول کد xml برای کاربر دانلود شود بد کل صفحه برای او نشان داده شود یا بر عکس که معمولا false قرار می دن که اگر هر مشکلی به وجود آمد صفحه برای کاربر نمایش داده شود
در خط سوم هم که ما فایل xml خود را در سند ساخته شد به وسیله ی متد load فراخوانی می کنیم

ساخت سند xml در firefox و opera

برای ساخت سند xml در این 2 browser از کد زیر استفاده می کنیم

کد:

var xmlDoc = document.implementation.createDocument("","",null);
xmlDoc.load("myfile.xml");


حالا با این تفاصیر تابع createdocument را کامل می کنیم

کد:

function createDocument()
{
//Temporary DOM object.
var xmlDoc;
//Create the DOM object for IE
if (window.ActiveXObject)
{
var versions =
[
"Msxml2.DOMDocument.6.0",
"Msxml2.DOMDocument.3.0"
];
for (var i = 0; i < versions.length; i++)
{
try
{
xmlDoc = new ActiveXObject(versions[i]);
return xmlDoc;
}
catch (error)
{
//do nothing here
}
}
}
//Create the DOM for Firefox and Opera
else if (document.implementation && document.implementation.createDocument)
{
xmlDoc = document.implementation.createDocument("","",null);
return xmlDoc;
}
//no version was found; return null
return null;
}


حالا با این مطالبی که یاد گرفتیم یک مثال حل کنیم
ابتدا یک سند xml شامل روز های هفته درست کنیم
به صورت زیر

کد:

<?xml version=”1.0”?>
<messages>
<daily>Today is Sunday.</daily>
<daily>Today is Monday.</daily>
<daily>Today is Tuesday.</daily>
<daily>Today is Wednesday.</daily>
<daily>Today is Thursday.</daily>
<daily>Today is Friday.</daily>
<daily>Today is Saturday.</daily>
</messages>



این سند را به اسم motd.xml ذخیره می کنیم

حالا بریم سراغ page خودمان

خوب تابعی که در بالا ساختیم را ابتدا وارد صفحه می کنیم

کد:


<html>
<head>
<title>Message of the Day</title>
<script type="text/javascript">
function createDocument()
{
//Temporary DOM object.
var xmlDoc;
//Create the DOM object for IE
if (window.ActiveXObject)
{
var versions =
[
"Msxml2.DOMDocument.6.0",
"Msxml2.DOMDocument.3.0"
];
for (var i = 0; i < versions.length; i++)
{
try
{
xmlDoc = new ActiveXObject(versions[i]);
return xmlDoc;
}
catch (error)
{
//do nothing here
}
}
}
//Create the DOM for Firefox and Opera
else if (document.implementation && document.implementation.createDocument)
{
xmlDoc = document.implementation.createDocument("","",null);
return xmlDoc;
}
//no version was found; return null
return null;
}


خوب حالا باید یک تابع بنویسیم که سند مارا فرا خوانی کرده و ازش استفاده کنه

کد:

function getDailyMessage()
{


خوب حالا با توجه به اسم تگمون در سند xml آن را داخل یک متغییر قرار می دهیم


کد:

var messages = xmlDoc.getElementsByTagName("daily");


حالا از تابع date استفاده می کنیم و روز هفته را با آن پیدا می کنیم یادتان باشد روز هفته در اینجا از یک شنبه شروع شده


کد:

var dateobj = new Date();
var today = dateobj.getDay();


حالا که روز هفته را بدست آوردیم حالا میایم به همان ترتیب عددی روز را از سند فرا خوانی می کنیم

کد:

return messages[today].firstChild.nodeValue;


پس تابع ما به شکل زیر شد

کد:

function getDailyMessage()
{
//Get the node list of <daily/> elements.
var messages = xmlDoc.getElementsByTagName("daily");
//Create a date object.
var dateobj = new Date();
//And get today’s day.
var today = dateobj.getDay();
//Return the message.
return messages[today].firstChild.nodeValue;
}


حالا باید توی تگ body یک div بسازیم و سند را در آن load کنیم و نتیجه تابع getDailyMessage()
را در آن نشان دهیم

کد:


<div id="messageContainer"></div>
<script type="text/javascript">
//Create the DOM object
var xmlDoc = createDocument();
//We’ll load it in synchronous mode.
xmlDoc.async = false;
//Load the XML file
xmlDoc.load("motd.xml");
document.getElementById("messageContainer").innerHTML = getDailyMessage();
</script>


خوب این هم کل فایل html ما

کد:

<html>
<head>
<title>Message of the Day</title>
<script type="text/javascript">
function createDocument()
{
//Temporary DOM object.
var xmlDoc;
//Create the DOM object for IE
if (window.ActiveXObject)
{
var versions =
[
"Msxml2.DOMDocument.6.0",
"Msxml2.DOMDocument.3.0"
];
for (var i = 0; i < versions.length; i++)
{
try
{
xmlDoc = new ActiveXObject(versions[i]);
return xmlDoc;
}
catch (error)
{
//do nothing here
}
}
}
//Create the DOM for Firefox and Opera
else if (document.implementation && document.implementation.createDocument)
{
xmlDoc = document.implementation.createDocument("","",null);
return xmlDoc;
}
//no version was found; return null
return null;
}
//Gets the message from the XML file
function getDailyMessage()
{
//Get the node list of <daily/> elements.
var messages = xmlDoc.getElementsByTagName("daily");
//Create a date object.
var dateobj = new Date();
//And get today’s day.
var today = dateobj.getDay();
//Return the message.
return messages[today].firstChild.nodeValue;
}
</script>
</head>
<body>
<div id="messageContainer"></div>
<script type="text/javascript">
//Create the DOM object
var xmlDoc = createDocument();
//We’ll load it in synchronous mode.
xmlDoc.async = false;
//Load the XML file
xmlDoc.load("motd.xml");
document.getElementById("messageContainer").innerHTML = getDailyMessage();
</script>
</body>
</html>



دیدین زیادم سخت نبود

موفق باشید

_________________
عمار پتکی
در نبود آنچه که من نیستم, آنچه که هستم نیست
آنگاه که نمادی از امید در فنجان قهوه ات نمی بینی وآنگاه که در طالع این ماهت نیز خبری از معجزه نیست بدان که خداوند همه چیز را به دست خودت سپرده تا بهترين را به ارمغان بياوري
خواندن مشخصات فردی ارسال پیام شخصی شناسه عضویت در Yahoo Messenger
تشکرها از این تاپیک
melisa(چهار‌شنبه 28 اسفند 1387 - 17:11), Calm از این تاپیک تشکر میکنم 
نمایش پستها:       
ارسال موضوع جدید   پاسخ دادن به این موضوع   تشکر کردن از تاپیک   Printer-friendly version

مشاهده موضوع بعدی
مشاهده موضوع قبلی
شما نمی توانید در این بخش موضوع جدید پست کنید
شما نمی توانید در این بخش به موضوعها پاسخ دهید
شما نمی توانید موضوع های خودتان را در این بخش ویرایش کنید
شما نمی توانید موضوع های خودتان را در این بخش حذف کنید
شما نمی توانید در این بخش رای دهید
شما نمیتوانید به نوشته های خود فایلی پیوست نمایید
شما نمیتوانید فایلهای پیوست این انجمن را دریافت نمایید

:: DpiGuide.Com Forums ::
تمام زمانها بر حسب GMT + 3.5 Hours می‌باشند
Forums ©
 
PHP-Nuke © 2004 Francisco Burzi
INP-Nuke

مدت زمان ایجاد صفحه : 0.18 ثانیه

:: DpiGuide.Com - Copyright All Rights Reserved By DpiGuide :: Info [at] DpiGuide.Com [dot] Com ::