Sizzle


السلام عليكم و رحمه الله تعالى و بركاته

Sizzle هو محرك للبحث عن عناصر ال DOM بإستخدام تعبيرات CSS3 ، مكتوب كاملا بالجافاسكربت بواسطه john resig مطور مكتبه ال jQuery ، أهم مايميز ال Sizzle انه أسرع من كل المحركات فى اطر العمل الموجوده حاليا ، كما انه 3 كيلو بايت فقط ، ولا يعتمد على اى اطار اخر standalone ، و يمكن ادراجه فى اى اطار عمل اخر embedable ، و يمكن التطوير و الزياده فيه extensible ، كما انه يدعم event delegation ، و يقوم بإعطاء رسائل خطأ ذات معنى عند التطوير فى الكوود و حصول خطأ دون قصد ، ثم انه لا يقوم بفحص ماهيه المتصفح بل يقوم بفحص الخصائص المتوافره فى المتصفح مثل إستخدام selector api و بذلك سيضمن بقاء المحرك متوافق لمده كبيره مستقبلا ، إذا فتحت كود ال Sizzle ستجد regular expression معقده نسبيه يليها الكثير من ال logic المعقد جدا لاعراب و ادراج CSS3 و البحث عما يطابقها فى ال DOM مستخدما نظام لل cach متطور عن نظيره الموجود فى ال jQuery 1.2.6 ، بجد الكود رائع جدا مثل مقطوعه موسيقيه ،  تم ادراج Sizzle فى jQuery 1.3 و كان احد الاسباب التى جعل سرعته مذهله و فاقت كل التوقعات ، و خلال ذلك الوقت هناك الكثير من اطر العمل التى تفكر فى ادراج Sizzle بدلا من محرك ال CSS الخاص بها مثل Prototype و Dojo و MochiKit و TinyMCE و PURE و reglib و Haxe ، حيث قام Dojo بعمل استفتاء لإدراج Sizzle بدلا من محركه الخاص ، و اعلن اطار عمل القوالب PURE دعم sizzle ، لكن MooTools اعلنت موقف مضاد تماما لأسباب من وجهه نظرى واهيه و قام john resig بالرد اللاذع على المقاله السابقه معلقا على كل نقطه ذكروها فى مقالتهم .

محرك CSS موحد بين اطر عمل الجافاسكربت سيجعل المطورين يركزون فى تطويرهم على مزايا كل مكتبه بدلا من التركيز على السرعه التى وصلت قمتها Sizzle و انهت الصراع ، و سيجعل اختيار اطار العمل من قبل المستخدم معتمد على الستايل المستخدم فى عمل api الاطار و ليست على سرعته ، وجب الذكر أيضا انه يوجد محرك CSS اخر اسمه Peppy يدعى انه أسرع من Sizzle ، يستخدم ال Mutation event الاحداث التى تعلم بتغير تركيب شجره ال DOM من اجل cach افضل و اسرع ، و مساحتها 10k و من المتوقع ان تنافس Sizzle .

8 تعليقات to “Sizzle”

  1. almahjer Says:

    اول شي شكرا على المقالة والله يبارك فيك
    ثاني شي شوف الاجانب ينافسون بالسرعة والاداء واحنا الي بيعرف بيطور كود
    انسى انك تلمحو حتى في فرق شاسع
    الله بيعين

  2. mostafa farghaly Says:

    اطلق عنان الابداع و المعرفه فى نفسك و سوف تصبح افضل منهم😀

  3. Omar Al-Dolaimy Says:

    لماذا زاد الإهتمام بالجافاسكربت هذه الأيام مع أنها لغة ليست جديدة؟ هل السبب سرعة إتصال النت؟ أم أنه فقط موضة أو توجه جديد لطريقة بناء المواقع؟ أم أن للمصادر الحرة علاقة بذلك؟
    الأمر محير جداً بالنسبة لي!

    • mostafa farghaly Says:

      الموضوع يا عمر هو تواجد التقنيات لكن الوقت المناسب لإستخدامها ليس هو وقت نشأتها ، خذ عندك ال ajax متواجد فى internet explorer منذ قبل سنه 2000 لكن لم يحن إستخدامه إلا بعد ادراج التقنيه فى كل المتصفحات ، خذ عنك ايضا ال SVG و ال Canvas و ال XPath و ال XSLT و Selector api و ال CSS 3 و ال HTML 5 ، لا تتوقع استخدام هذه التقنيات الا بعد نضوج البيئه التى تتيح لإستخدامها بتوسع ، هناك البيئات التى تستطيع من خلالها استخدام التقنيات السابقه كلها مثل firefox و webkit و بالطبع Adobe AIR ، لكن لأن firefox يشغل اقل من 20% من سوق المتصفحات و بسبب انتشار IE بسبب ادراجه مع انظمه تشغيل ويندوز ، هذا يجعل المطورين لا يستهدفون firefox لوحده ، يمكنك ايضا استغلال السابق كله فى Adobe AIR لكن القليل يعلم اساسا بوجود هذه التقنيه او الذى يعلم لا يفكر فى تعلم كل هذا ، لكن ان شاء الله انا لى برمجيه بال AIR قريبا بكن ليس قريبا جدا ستكون بالنسبه لى تحفه فنيه برمجيه😀 .

  4. almahjer Says:

    اخ مصطفى في هذه المقالة لم تضع كود كالعادة وشرح على المقالة اكتفيت بالكلام فقط عن هذه المكتبة حبذا لو تعطيني نموذج موسع عنها وجزاك الله كل خير

  5. mostafa farghaly Says:

    يا مهاجر هذا المحرك موجه لمطورى اطر العمل ، بالرغم من ذلك لامانع من استخدامه بواسطه المطورين العاديين ، لكن للأسف لن رفع ال documentation الخاص به بواسطه john resig فقد اعتذر على المجموعه البريديه الخاصه ب sizzle عن ذلك ، لكن حتى ترى ال Sizzle فى العمل ، فانت عندما تستخدم jQuery 1.3 بهذه الطريقه $(“#mm.error”); فإن sizzle هو الذى يقوم بجلب العنصر الذى له id بإسم mm و له كلاس بإسم error ، قريبا سأضع كيفيه استخدامه لا تقلق ان شاء الله

  6. almahjer Says:

    بارك الله فيك انا عندي امل بانتاج محرك خاص
    وبيكون فيه مثل مميزات جاك كيوري ولا غيرها بس لازم قبل مااكتب محرك بدي افهم واستعب الافكار الاخرى لانو من دون مشروع عمل مابيطور الشخص لابد من هدف بارك الله فيك
    وانتظر هذا الدرس وشكرا جزيلا

  7. Omar Al-Dolaimy Says:

    بارك الله فيك🙂.
    مثال svg يوضح المسألة🙂 … شكراً ^.^ ..
    أتوقع السبب هو مسألة الخوف من إستخدامها!

أضف تعليقاً

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s


%d مدونون معجبون بهذه: