GyaanSetu JavaScript

The JavaScript and TypeScript ecosystem.

78 articlesDeep, practical knowledge

مصحح أخطاء Chrome DevTools يبطئ عمليات الرفع في Playwright بأكثر من 20 ضعفاً

عندما قامت Coffer بربط مصحح أخطاء Chrome DevTools عبر Playwright، انخفضت سرعة عمليات الرفع القائمة على fetch من 600 ميجابت في الثانية إلى 113 ميجابت في الثانية فقط، مما أدى إلى تباطؤ بأكثر من 20 ضعفاً قلب نتائج اختبارات الأداء الخاصة بهم رأساً على عقب.

JavaScript · 3 دقيقة قراءة

تفعيل SharedArrayBuffer أجبرني على التخلي عن جميع سكربتات الطرف الثالث

أدت إضافة ترويسات COOP و COEP إلى إتاحة تعدد المسارات (multithreading) الحقيقي، لكنها حظرت على الفور أدوات التحليل، وخطوط Google، وتضمينات YouTube، ونوافذ OAuth المنبثقة، مما دفعني لاستضافة الأصول ذاتياً وإعادة كتابة الواجهة الأمامية من الصفر.

JavaScript · 4 دقيقة قراءة

المتصفح مقابل Node: أين يختلف الـ Event Loop

المتصفح مقابل Node: أين يختلف الـ Event Loop. حلقة الأحداث (Event Loop) ليست جزءاً من مواصفات لغة JavaScript، بل هي جزء من بيئة الاستضافة. يقوم المتصفح وNode بتنفيذها بشكل مخـ...

JavaScript · 4 دقيقة قراءة

Next.js 16.3 يضيف Hook useOffline التجريبي للكشف الفوري عن حالة الاتصال

يعيد الـ Hook قيمة منطقية (boolean) يتم تحديثها في الوقت الفعلي، مما يتيح لك استبدال التطبيق الرئيسي برسالة بسيطة "أنت غير متصل" دون انتظار فشل عملية جلب البيانات، لكنه لا يوفر ميزات التخزين المؤقت أو المزامنة في الخلفية بمفرده.

JavaScript · 2 دقيقة قراءة

محرك Sätteri الجديد في Astro 7 يتسبب في أعطال في الرياضيات المعروضة، وروابط العناوين، والإعدادات المخصصة

يتسبب محرك Sätteri القائم على لغة Rust في Astro 7 في خلل بترتيب تمييز الصيغة وتنفيذ الإضافات، حيث يحول كتل الرياضيات المعروضة إلى أكواد نصية عادية، ويمسح معرفات العناوين (heading IDs)، ويتجاهل بصمت أي حقول إعدادات إضافية مثل shikiConfig، مما يضطر المطورين إلى إعادة هيكلة مجموعة أدوات Markdown الخاصة بهم بالكامل.

JavaScript · 3 دقيقة قراءة

AGP 9.2.0 يضاعف سرعة Kotlin Coroutine عبر إعادة كتابة الـ Bytecode باستخدام R8

تقوم أداة R8 المرفقة مع Android Gradle Plugin 9.2.0 الآن باستبدال استدعاءات AtomicFieldUpdater الانعكاسية بتعليمات Unsafe واحدة، مما يقلل تكاليف المزامنة بشكل كبير ويوفر عمليات أسرع بنحو ضعفين لـ channel و mutex و StateFlow دون الحاجة لأي تغييرات في الكود المصدري.

JavaScript · 4 دقيقة قراءة

يتطلب Apache DolphinScheduler 3.x إعادة تهيئة شاملة للمجموعة وإعادة تسمية قاعدة البيانات للترقية

تفرض عملية الترقية إعادة تسمية الجداول الأساسية، ونقل كتل بيانات JSON الخاصة بالمهام إلى جداول علاقية، واستبدال الخادم الرئيسي الموحد (monolithic master) بعقد منفصلة من نوع MasterServer و WorkerServer تنسق عبر ZooKeeper أو JDBC أو Etcd.

JavaScript · 3 دقيقة قراءة

فشل رمز التحقق (OTP) في ألمانيا يكشف عن خلل في تخزين أرقام الهواتف في قواعد البيانات

تم حظر مستخدم من الدخول بسبب وجود نفس رقم الهاتف الألماني بصيغتين مختلفتين ("0171 5550134" و "+49 171 5550134") في قاعدة البيانات، مما أدى إلى إرسال رمز التحقق (OTP) إلى إدخال مكرر لم يصل إلى المستخدم أبداً.

JavaScript · 3 دقيقة قراءة

فهرس مفقود حوّل API يستغرق 45 مللي ثانية إلى كارثة مدتها 8 ثوانٍ لـ 1.5 مليون صف

كيف تسبب عمود غير مفهرس في تدمير قاعدة بياناتنا. فهرس واحد مفقود حوّل API يستغرق 8 مللي ثانية إلى كابوس مدته 8 ثوانٍ. أجرينا اختبار حمل قبل إصدار رئيسي. عمل التطوير المحلي...

JavaScript · 1 دقيقة قراءة

أداة أتمتة سفاري تغلق التبويب الخطأ بعد فشل نظام الحماية في رصد علامة الملكية

تسبب إعادة التوجيه في حذف المعرف الداخلي من صفحة النموذج، مما دفع نظام الحماية لرفض ملكية الصفحة. ونتيجة لذلك، قامت عملية التنظيف بإغلاق التبويب الحالي بشكل تلقائي، مما أدى إلى إغلاق لوحة تحكم المطور بدلاً من التبويب اليتيم.

JavaScript · 4 دقيقة قراءة

منصة تعليمية تستغني عن بيئة Node.js vm Sandbox وتعتمد نظام القائمة البيضاء لـ AST

تقوم المنصة الآن بتحليل كل استعلام يكتبه الطلاب باستخدام محلل Acorn AST، مع رفض أي عقدة خارج قائمة بيضاء صارمة. يساهم هذا الإجراء في القضاء على محاولات تجاوز التعبيرات النمطية (regex) ويمنع تسريب اتصالات قواعد البيانات النشطة داخل البيئة المعزولة.

JavaScript · 3 دقيقة قراءة

useSyncExternalStore في React 18 يمنع وميض واجهة المستخدم الناتج عن البيانات الخارجية

يستبدل هذا الـ hook الجديد النمط القديم المتمثل في محاكاة القيم الخارجية باستخدام useState و useEffect، مما يمنع حدوث التمزق (tearing) في التصيير المتزامن ويضمن قراءة كل جزء من واجهة المستخدم لنفس اللقطة (snapshot) خلال دورة التصيير.

JavaScript · 4 دقيقة قراءة

عشرة أحرف قيمتها أعلى في WWF، مما يمنحها تفوقاً بمقدار 11 نقطة في الكلمات الكبيرة

من خلال تحليل 172,835 مدخلاً من قاعدة بيانات ENABLE، كشفت الدراسة أن الأحرف العشرة ذات القيمة العالية في WWF تمنحها تفوقاً بمتوسط 2.52 نقطة لكل كلمة، بينما تتفوق Scrabble على WWF فقط في حرفي H و Y، ولا يتجاوز ذلك أبداً ثلاث نقاط.

JavaScript · 3 دقيقة قراءة

خمس علامات تبويب مفتوحة قد تؤدي لتسجيل خروج المستخدم عبر عملية تحديث واحدة لـ JWT

عندما قامت خمس علامات تبويب بتحديث رمز JWT منتهي الصلاحية في نفس الملي ثانية تماماً، تعاملت الواجهة الخلفية مع الطلبات الإضافية كأنها هجمات إعادة تشغيل (replay attacks)، مما أدى إلى إلغاء رمز التحديث (refresh token) وتسجيل خروج المستخدم من جميع علامات التبويب؛ وهو سيناريو لا يمكن لأي آلية حماية مخصصة لعلامة تبويب واحدة أن تمنعه.

JavaScript · 3 دقيقة قراءة