يا هلا
الموقع يستخدم الـ AJAX أخى الغالى لنظام تعدد الصفحات بدون إعادة تحميل الصفحه
فهذه أحد التطبيقات الاساسيه والمباشرة جدا لتقنيات الـ AJAX والتى جعلته تقنيه مبهره أيضا
مثال عليها:
شركة هوستك لخدمات الاستضافة المحميه والدردشة الكتابية والدعم الفنى
عند الضغط على أحد أيقونات طرق الدفع سوف لن يتم إعادة تحميل الصفحه
وسوف يظهر محتوى صفحه خارجيه فى خلية جدول واحده من ضمن الجدول الاساسى للصفحه الاساسيه التى تم تصفحها أصلا
وطريقة التنفيذ كالتالى بمنتهى الاختصار:
لديك صفحه مكونه من جدول , هذا الجدول مكون من عدة خلايا cells
فلنفترض انك سوف تجعل الخليه اليمنى هى خلية الروابط والخليه اليسرى هى خلية ظهور المحتوى
كل ما عليك أن تظلل خلية المحتوى
وتنتقل الى الوضع code
ومن ثم تضع الكود التالى داخل كود خلية الجدول:
كود:
<div id="contentarea">
</div>
فيكون الكود النهائى لخلية الجدول ما يشبه ذلك:
كود:
<td><div id="contentarea">
</div></td>
وتجعل الروابط تؤدى الى الصفحات التى تريد عرضها فى خلية المحتوى بهذا الشكل:
كود:
<a href="javascript:ajaxpage('/foldername/filename.html','contentarea');"> لاحظ إستبدال foldername بإسم المجلد الموجوده داخله الصفحه المطلوب إستدعائها
وإستبدال filename بإسم الملف المطلوب إستدعاء محتواه
الخطوه الاخيره هى أن تضع الكود التالى بين وسم
فى الصفحه التى تحتوى الروابط
كود:
<script type="text/javascript">
var bustcachevar=1 //bust potential caching of external pages after initial request? (1=yes, 0=no)
var loadedobjects=""
var rootdomain="http://"+window.location.hostname
var bustcacheparameter=""
function ajaxpage(url, containerid){
var page_request = false
if (window.XMLHttpRequest) // if Mozilla, Safari etc
page_request = new XMLHttpRequest()
else if (window.ActiveXObject){ // if IE
try {
page_request = new ActiveXObject("Msxml2.XMLHTTP")
}
catch (e){
try{
page_request = new ActiveXObject("Microsoft.XMLHTTP")
}
catch (e){}
}
}
else
return false
page_request.onreadystatechange=function(){
loadpage(page_request, containerid)
}
if (bustcachevar) //if bust caching of external page
bustcacheparameter=(url.indexOf("?")!=-1)? "&"+new Date().getTime() : "?"+new Date().getTime()
page_request.open('GET', url+bustcacheparameter, true)
page_request.send(null)
}
function loadpage(page_request, containerid){
if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1))
document.getElementById(containerid).innerHTML=page_request.responseText
}
function loadobjs(){
if (!document.getElementById)
return
for (i=0; i<arguments.length; i++){
var file=arguments[i]
var fileref=""
if (loadedobjects.indexOf(file)==-1){ //Check to see if this object has not already been added to page before proceeding
if (file.indexOf(".js")!=-1){ //If object is a js file
fileref=document.createElement('script')
fileref.setAttribute("type","text/javascript");
fileref.setAttribute("src", file);
}
else if (file.indexOf(".css")!=-1){ //If object is a css file
fileref=document.createElement("link")
fileref.setAttribute("rel", "stylesheet");
fileref.setAttribute("type", "text/css");
fileref.setAttribute("href", file);
}
}
if (fileref!=""){
document.getElementsByTagName("head").item(0).appendChild(fileref)
loadedobjects+=file+" " //Remember this object as being already added to page
}
}
}
</script>
مثال عملى:
فى الصفحه المذكوره بالاعلى:
شركة هوستك لخدمات الاستضافة المحميه والدردشة الكتابية والدعم الفنى
لدى خليتان لجدول واحد
الخليه اليمنى تحتوى روابط لكافة طرق الدفع
والخليه اليمنى يظهر بها معلومات عن طريقة الدفع عندما تضغط على أى من طرق الدفع وكل هذا بدون اعادة تحميل الصفحه
أى انه عند قيامك بالضغط على : الراجحى : على سبيل المثال
فسوف يظهر لك محتوى صفحه على الموقع تسمى rajhi.shtml داخل مجلد يسمى pages
محتوى هذه الصفحه بالكامل سوف يظهر فى الخليه اليسرى التى تحدثنا عنها
أتمنى أن أكون ساعدتك
وتقبل ودى وتقديرى وإحترامى