اذهب إلى المحتوى

يوسف سيد

الأعضاء
  • المساهمات

    82
  • تاريخ الانضمام

  • تاريخ آخر زيارة

  • عدد الأيام التي تصدر بها

    2

إجابات الأسئلة

  1. إجابة يوسف سيد سؤال في إظهار رسالة حين إغلاق الصفحة أثناء الكتابة [Javascript] كانت الإجابة المقبولة   
    هذه الشيفرة تعمل مع عنصري المدخلات input وtextarea، يجب أن تعمل على أغلب المتصفحات، كتبتها بـES5 -يمكنك أن تعيد كتابتها بـES6 سيكون تنسيقا أفضل فقط- يجب أن تعمل في أي مكان في بيئة المتصفح سواءً قبل التحميل أو بعده:
    function checkInputs() { var elements = document.querySelectorAll('input, textarea'), ei; for (ei in [].slice.call(elements)) { if (elements[ei] && typeof elements[ei].value == 'string' && elements[ei].value.length > 0) { return true; } } return false; } window.addEventListener('beforeunload', function unloadCallback(e) { // هذه الرسالة لن تظهر في كل المتصفحات var confirmMsg = 'هل أنت متأكد من رغبتك بمغادرة الصفحة'; if (checkInputs()) { // كروم وWebkit القديم e.returnValue = confirmMsg; return confirmMsg; } });  
  2. إجابة يوسف سيد سؤال في ماهي آلية عمل نظام الإشعارات في أكاديمية حسوب؟ كانت الإجابة المقبولة   
    بالنسبة لتنبيهات سطح المكتب: تطلب الإذن من المتصفح بالوصول لها -ثم المتصفح يرى هل لك الإذن وإن كان لا، يسأل المستخدم -> بعدما تحصل على الإذن يمكنك استخدام الواجهة البرمجية لتنبيهات سطح المكتب،
    أما عن جلب التنبيهات من الخادوم يوجد العديد من الطرق أشهرها:
    1. طلبات متعددة باستخدام Ajax: الحل الأسهل والأكثر شيوعًا، إلّا أنه يسبب بعض التحميل على الخادم( أي العتاد الكبير) والخادوم(أي البرمجية التي تعالج الطلبات) بسبب الطلبات المتعددة، أيضًا برمجيًا ليس جيدًا إن كانت هنالك حلولًا أُخرى متوّفرة، أيضًا هو المستخدم في حسوب IO بحسب آخر مرة كتبت إضافة له، وجدته يطلب طلبات متعددة.
    2. إتصال مفتوح لجلب التحديثات SSE: تفتح إتصالًا بدون حدٍ أدني للطلب وتعالج الطلبات القادمة من الخادوم دونما إنقطاع، قد يكون الحل الأفضل في حالة البرمجة بلغة PHP وأشباهها التي لا تعطي حرية في التصنت على منفذ معين -هذا الشائع بالطبع يوجد بعض الـHacks لكنها لغة كتبتْ لِتصنع الصفح- لحسن الحظ المتصفحات توّفر API لذلك، كتبتُ هذا المقال عن استخدامها مع PHP في السابق.
    3. مقبس(Socket) بين الخادوم والمتصفح: قديمًا لم تكن هنالك حلولًا جيدة لكن مع قدوم الـWebSocket أصبح ذلك سهلًا تفتح مقبسًا ترسل الردود بين الخادم والمتصفح بسهولة.
    على الجانب:
    مع الإصدار الجديد من بروتوكول HTTP الذي هو HTTP/2 بات يدعم إرسال ردودٍ متعددة بين الخادوم والمتصفح، لكنه حاليًا ما زال جديدًا، لننتظر قليلًا وسنجد الكثير من المكتبات على نغم *.js.
  3. إجابة يوسف سيد سؤال في كيف يمكن تحويل المحرك لعدة جداول دفعة واحدة في MySQL كانت الإجابة المقبولة   
    وجدتُ الحل عندما نقلتَ السؤال هنا ؛ حفظ النتائج في مُتغير وتنفيذ الاستعلام، جربته هذه المرة
    SELECT @q=GROUP_CONCAT(CONCAT('ALTER TABLE DBNAME.', TABLE_NAME, ' ENGINE=MyISAM') SEPARATOR ';') FROM Information_schema.TABLES WHERE TABLE_SCHEMA = 'DBNAME' AND ENGINE = 'MyISAM' AND TABLE_TYPE = 'BASE TABLE'; PREPARE stmt from @q; EXECUTE stmt; DEALLOCATE PREPARE stmt;  
  4. إجابة يوسف سيد سؤال في كيف يمكن تحويل كود جافاسكربت إلى php وتركيبه في قالب بلوجر؟ كانت الإجابة المقبولة   
    جافا سكربت مختلفة تمامًا عن php وأيضًا في حالة إستخدام javascript للمتصفح فإنها تكون مختلفة عن php
    مثلًا سيمكنك بjavascript تحديد العناصر في الصفحة وحذفها وتعديلها إنشاء طلبات للخادم ......
    في حال php سيمكنك التعامل مع قواعد البيانات تعديل وحذف الملفاف في الخادم إرسال رد للمتصفح .....
    لايمكن وضع أكواد php في بلوجر لان بلوجر لا تتيح لك إلا تعديل التصميم وphp تحتاج إلى التنفيذ من خلال مترجم php الذي يثبت على الخادم مثلًا  في إستضافات php يكون منصب بالفعل
    javascript تتعامل مع المتصفح لذا يمكن كتابتها
    هذا المثال 
    <?php echo "hello"; ?>يكتب hello لكن هذا الكود لايرسل إلى المتصفح لانه ينفذ في الخادم وإن قرأت النص المصدري لن تجد إلا hello !
    في حال javascript
    document.write("hello");سيمكنك رؤية الكود المصدري لانه يتعامل مع المتصفح
    أتمنى أن أكون وضحت لك.
×
×
  • أضف...