السلام عليكم ورحمة الله وبركاته
كبداية هذه اول مشاركة لى فى سوالف سوفت بعد انقطاع طويل نظرا لظروف العمل فاتمنى ان اكون انا ومواضيعى ضيوف خفيفين عليكم
سنبدأ ببعض الدروس والمقالات والملاحظات والامور المتعلقة ب php - javascript - perl
التى استفدت بها فى معظم اعمالى والتى قد تفيد البعض
-------------------------------
- الجافا اسكريبت والاجاكس -
-------------------------------
عند استخدامك اى مكتبة من مكتبات الجافا اسكريبت التى قد توفر لك دوال تسهل عليك العديد من العمليات واهمها الاجاكس مثلا
تقوم مثل بوضع اكوادك او دوالك داخل دالة مثلا تسميها
ثم تأتى وتجعلها فى الحدث اون لود window.onload
يتم تنفيذ كل ما بداخل الدالة بعد الانتهاء تماما من عرض كافة محتويات الموقع مثل الصور والcss ,وحتى ملفات js الخارجية الخ ..والفلاش ولذلك قد ينتظر الزائر مدة طويلة جدا خصوصا ان كان الاتصال بطىء او يحتوى على ملفات فلاش كبيرة الحجم او حتى جافا او صور ...
فماذا لو اردت تنفيذ كود معين قبل عرض الصفحة او اثناء اكتمال تحميل جزء من الموقع بدون انتظار الصور الخ ..
يمكننا فعل ذلك عن طريق ال dom وهوا اختصار ل Document Object Model
وتساعد هذه الاداه على مساعدة المبرمجين للوصول الى بعض الكاثنات المعروضة وتحديثها مباشرة
وهذه الاداه تكون جاهزة للعمل بمجرد اكتمال كود ال html فى حالتنا هذه وقبل عرض المحتوى والبدأ بتنزيل الصور الخ
بأختصار سيتم تنفيذ دوالك قبل عرض الموقع وبذلك قد تستطيع مثلا جلب جزئية معينة الاجاكس وعرضها مع عرض الموقع وكأنها جزء من الموقع مثلا
لن اطيل عليكم اكثر من ذلك
الكود التالى يقوم بالتأكد من صلاحية وجهوزية ال dom للعمل
واستخدامه بالظبط كما تفعل مع onload
ومثال لذلك للتوضيح ولفهم الفكرة اكثر
http://www.nilesolutions.biz/examples/onDom/onDom.php
كود:
window.ondom = function( fn )
{
window.__ondom_functionArray.push( fn );
};
(function( )
{
window.__ondom_functionArray = [];
function _runFunctions( )
{
for ( var i in window.__ondom_functionArray )
{
(window.__ondom_functionArray[i])();
}
}
;
var _khtml = /(WebKit|khtml)/i.test( navigator.userAgent );
if ( document.addEventListener && !_khtml )
{
document.addEventListener( "DOMContentLoaded", _runFunctions, false );
}
else if ( _khtml )
{
var _timer = setInterval( function( )
{
if ( /loaded|complete/.test( document.readyState ) )
{
clearInterval( _timer );
_runFunctions();
}
}, 10 );
}
else
{
document.write( "<script id=__ie_ondom defer src=javascript:void(0)><\/script>" );
var script = document.getElementById( "__ie_ondom" );
script.onreadystatechange = function( )
{
if ( this.readyState == "complete" )
{
_runFunctions();
}
};
}
})();
طريقة الاستخدام :
قم بوضع الكود اعلاه فى اى ملف js لديك او حتى بداخل الهيدر
قم بطلب الدالة بالشكل التالى
كود:
window.ondom(function()
{
//اضف الاكواد الخاصة بك هنا او حتى الدوال التى سوف تستدعيها قبل الانتهاء من التحميل وليس الانتهاء من التحميل والعرض
alert('Nilesolutions Creative Web Engineering');
});
اتمنى ان اكون وضحت الفكرة بسهولة وفى انتظار تعليقاتكم
الكود شامل مثال
فى هذا الرابط
http://www.nilesolutions.biz/examples/onDom/onDom.php
http://www.nilesolutions.biz/examples/onDom.rar
ملاحظة الكود مقتبس من احد المواقع الاجنبية واعدت نشره وشرح استخدامه نظرا لاهميته
شكرا لكم :nice: