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

محمد أيت لعرايك

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

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

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

آخر الزوار

لوحة آخر الزوار معطلة ولن تظهر للأعضاء

إنجازات محمد أيت لعرايك

عضو نشيط

عضو نشيط (3/3)

92

السمعة بالموقع

14

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

  1. مادام الموقع سريع في الإستضافى المحلية فالسبب رقم #1 لموقعك البطيء هو استضافة المواقع البطيئة قد يكون لديك موقع بطيء لأنك مستضاف على استضافة مجانية. أنت في خدمة استضافة منخفضة الجودة مع دعم ضعيف. أو يحتاج موقعك إلى حساب استضافة ذات مواصفات أعلى مع المزيد من الموارد مثل VPS. أو يمكن أن يكون سبب بطء الموقع الخاص بك مرتبط بقاعدة البيانات ، فكلما زادت المعلومات المحفوظة في قاعدة البيانات الخاصة بك وكلما زاد تعقيد موقعك ، زاد احتمال عدم تشغيل قاعدة البيانات بنفس الفعالية التي كانت عليها عند تشغيل الموقع لأول مرة. يمكن أن يكون امتلاك موقع ويب سرعته ضعيفة بمثابة كابوس إجمالي لأنه يمكن أن يؤثر على نجاحك كمالك أو مدون تجاري ، لذلك يجب أن تهدف إلى التعامل مع كل ما يسبب المشكلة في أسرع وقت ممكن. ولايمكن بأي حال من الأحوال أن تكون البرمجة هي سبب البطء مادام أنه يعمل بكفائة في الإستضافة المحلية.
  2. إذا كنت تستخدم مكتبة Jquery يمكنك إستخدام الطريقة التالية: function saveData(){ $("#button").prop('disabled', true); // عند الضغط على الزر لأول مرة نقوم بتعطيل الزر $.ajax({ type: "post", url: "{{ url('route_name') }}", dataType: "json", data: $('#ajax').serialize(), success: function(data){ $("#button").prop('disabled', false); // ثم نقوم بتفعيل الزر مجددا عند الحصول على الإجابة }, error: function(data){ alert("Error") } }); }); }
  3. يمكنك إستخدام orderBy سواء من الأكبر إلى الأصغر أو العكس مثال ترتيب الأشخاص من الأكبر إلى الأصغر حسب الpriority <?php $users = User::orderBy('priority', 'DESC')->get(); ولترتيب الأشخاص من الأصغر إلى الأكبر حسب الpriority نستعمل asc <?php $users = User::orderBy('priority', 'ASC')->get();
  4. يمكنك إختبار الكود الخاص بك باستخدام Postman ، لاختبار إجراءات نشر HTTP مع حمولة بيانات JSON الأولية ، حدد الخيار الأولي واضبط معلمات الرأس التالية: Content-Type: application/json تأكد أيضًا من التفاف أي strings مستخدمة كمفاتيح / قيم في حمولة JSON في علامتي اقتباس كهذه " ". هكذا ستقوم حزمة body-parser بتحليل حمولات JSON الخام متعددة الأسطر بشكل جيد. { "foo": "bar" } بعد ذلك بجب تكوين التطبيق لاستخدام ()bodyParser var express = require('express'); var app = express(); var bodyParser = require('body-parser'); // bodyParser() إستخدام app.use(bodyParser.urlencoded({ extended: true })); app.use(bodyParser.json()); // ... أكتب الموجهات الأخرى منا
  5. يمكنك تمرير المتغيرات بين الوسطاء باستخدام كائن res.locals ، حيث تكون المتغيرات صالحة فقط طوال عمر الطلب. const express = require('express'); const app = express(); app.get('/clients', middleware1, middleware2, (req, res) => { res.send('clients page'); }) function logger1(req, res, next) { //تمرير المتغيرات res.locals.client = "gowtham"; res.locals.id = "3434"; next(); } function logger2(req, res, next) { // الوصول إلى المتغيرات const client = res.locals.user; const id = res.locals.id; console.log(client, id); next(); } app.listen(4300, () => console.log(`App is running`)); ملاحظة: لا يمكنك تمرير المتغيرات من خلال الدالة ()next لأنها تستخدم لتشغيل وظيفة البرامج الوسيطة التالية في التطبيق.
  6. في حالة تريد إستدعاء دالة في عدة سطور يمكنك إستخدام الأقواس على الشكل التالي: a = some_function( 1 + 2 + 3 - 4 ) أما إذا كنت تريد كتابة سطر برمجي عادي فيمكنك إستخدام الأقواس: a = 1 \ - 2 \ + 3 \ - 4 # االنتيجة 3
  7. إبتداءا من الإصدار 2.7 يمكنك إستعمال الدالة format بالشكل التالي: my_number = 12678940 my_string = '{:0,.2f}'.format(my_number) # النتيجة : # 12,678,940
  8. Destructor هي وظيفة يتم استدعاؤها تلقائيًا عندما يتم مسح كائن ما من الذاكرة. يعني أن أداة المسح من الذاكرة هي الوظيفة الأخيرة التي سيتم استدعاؤها قبل مسح الكائن. يمكن تعريفه مرة واحدة فقط في class. مثل المنشئات ، يتم استدعاؤها تلقائيًا. يتم تعريف Destructor مثل المنشئ. يجب أن يكون له نفس اسم class. لكنها مسبوقة بعلامة التلدة (~). مثال: #include <iostream> using namespace std; class Employee { public: Employee() // دالة المنشئ { cout<<"تم إنشاء كائن موظف"<<endl; } ~Employee() // دالة المدمر { cout<<"تم تدمير كائن الموظف"<<endl; } }; int main(void) { Employee e1; //بناء كائن الموظف return 0; } /** النتيجة : تم إنشاء كائن موظف تم تدمير كائن الموظف */ في C++ المدمر لا يمكن أن يحتوي على معلمات و يتم إستدعاء المدمر تلقائيا عند نهاية البرنامح لتفريخ الذاكرة من المعلومات,
  9. إذا كنت تريد كتابة إستعلام واحد و الحصول على الإسم الأكثر تكرارا يمكنك إستخدام الإستعلام التالي: SELECT `name` FROM `users` GROUP BY `name` ORDER BY COUNT(*) DESC LIMIT 1;
  10. كما ذكرت لك في الإجابة الأولى اولا يجب ان تأتي بجميع الاسماء على شكل مصفوفة من قاعدة الببانات. <?php $query = "SELECT name from users"; $result = mysqli_query($db, $query); if ($result) { $names = mysqli_fetch_assoc($result); // $names قم بتفيذ الأوامر التي ذكرت في الجواب الأول هنا بإستعمال المصفوفة } ستحصل على مصفوفة بها جمبع الأسماء, بعد ذلك قم بتطبيق الحل الذي اقترحت عليك في الجواب السابق لمعرفة الاسم الاكثر تكرارا عن طريق الدالة array_count_values,
  11. لفهم كيفية حساب العناصر المتكررة في مصفوفة هناك دالة ()array_count_values و هي دالة مضمنة في PHP تُستخدم لحساب جميع القيم الموجودة داخل المصفوفة. بعبارة أخرى ، يمكننا القول أن الدالة ()array_count_values تُستخدم لحساب تكرار جميع عناصر المصفوفة. وتستخدم كالتالي : array array_count_values( $array ) المعلمات: تقبل هذه الدالة مصفوفة واحد كمعامل. هذه المعلمة هي المصفوفة التي نحتاج إلى حساب عدد القيم الموجودة فيها. إرجاع القيمة: تقوم هذه الدالة بإرجاع مصفوفة ارتباطية بأزواج مفتاح-قيمة حيث تكون المفاتيح هي عناصر المصفوفة التي تم تمريرها كمعامل والقيم هي تكرار هذه العناصر في المصفوفة. مثال: <?php $output = array_count_values(["Geeks", "hsoub", "Geeks", "Geeks", "Welcome", "hsoub"]); /* النتيجة : Array ( [Geeks] => 3 [hsoub] => 2 [Welcome] => 1 ) */ $output = array_count_values([1, 1, 2, 3 , 1 , 2 , 4, 5]); /* النتيجة : Array ( [1] => 3 [2] => 2 [3] => 1 [4] => 1 [5] => 1 ) */ ثم بعد ذلك نقوم بإستخدام الدالة array_search على المصفوفة التي حصلنا عليها في المثال السابق لإيجاد الإسم الأكثر تكرارا <?php $array = array_count_values(["Geeks", "hsoub", "Geeks", "Geeks", "Welcome", "hsoub"]); echo array_search(max($array), $array); /** النتيجة: Geeks */ $array = array_count_values([1, 1, 2, 3 , 1 , 2 , 4, 5]); echo array_search(max($array), $array); /** النتيجة: 1 */
  12. أو يمكنك كتابة الدلة في الموجه admins على الشكل التالي: app.get('/admins', (req, res, next) => { role(req, res, next, req.user.role); }, (req,res) => { // admins أوامر الموجه }); بعد ذلك تكتب role middleware على الشكل التالي: const role = (req, res, next, role_name) => { if(role_name != 'admin'){ // هنا مثلا يمكنك التخقق من دور المستخدم ثم إجراء التحوبل إلى صفحة أخرى } next(); };
  13. تعدد الأشكال أو ما يسمى ب polymorphism في Java هو قدرة الكائن على اتخاذ أشكال عديدة. ببساطة ، يتيح لنا تعدد الأشكال في جافا أداء نفس الإجراء بعدة طرق مختلفة. و يعد تعدد الأشكال أحد أهم ميزات البرمجة الشيئية. في الحياة العملية يمكن فهم polymorphism بالشكل التالي مثلا : يمكن للفرد أن يكون لديه علاقات مختلفة مع أشخاص مختلفين. يمكن للمرأة أن تكون أماً ، أو ابنة ، أو أختًا ، أو صديقة ، وكل ذلك في نفس الوقت ، أي أنها تؤدي سلوكيات أخرى في مواقف مختلفة. وهذا ينطبق تماما على الكائنات في البرمجة الشيئية وهذا مثال عملي على كيفية عمل polymorphism في java // الفئة الأم (الأشكال) class Shapes { public void area() { System.out.println("The formula for area of "); } } // فئة المثلثات class Triangle extends Shapes { public void area() { System.out.println("Triangle is ½ * base * height "); } } // فئة الدوائر class Circle extends Shapes { public void area() { System.out.println("Circle is 3.14 * radius * radius "); } } class Main { public static void main(String[] args) { Shapes myShape = new Shapes(); // إنشاء كائن الأشكال Shapes myTriangle = new Triangle(); // إنشاء كائن المثلثات Shapes myCircle = new Circle(); // إنشاء كائن الدوائر myShape.area(); myTriangle.area(); myShape.area(); myCircle.area(); } نلاحظ أنه في كل كائن نستعمل الدالة ()area بشكل مختلف حسب طبيعة الكائن و هذا ما يسمى ب polymorphism يمكنك الإطلاع على المزيد حول هذا الموضوع في مقالة حسوب على الرابط التالي
  14. تقول Google إن عملية المراجعة قد تستغرق ما يصل إلى 7 أيام أو حتى أكثر من ذلك. ولكن عادةً ما يستغرق الأمر ما يصل إلى يومين. وللتوصل بجميع الإشعارات حول تطبيقك, قم بالدخول إلى حساب المطور الخاص بك ثم فعل الإشعارات كالتالي: الإعدادات -> التفضيلات -> الإشعارات من Play Console -> تحديثات التطبيق ثم قم بتفعيل الإشعارات, هكذا سوف تتوصل بجميع الإشعارات حوال التطبيق بما فيها قبول التطبيق وظهوره على المتجر.
  15. تسمح لك الدالة ()sort بترتيب عناصر المصفوفة في مكانها. بالإضافة إلى إعادة المصفوفة التي تم ترتيبها ، الدالة ()sort أيضا تغير مواضع العناصر في المصفوفة الأصلية. بشكل افتراضي ، تقوم الدالة ()sort بفرز عناصر المصفوفة بترتيب تصاعدي من الأصغر إلى الأكبر. في حالة إستعمال الدالة بشكل إفتراضي: let numbers = [0, 1 , 2, 3, 10, 20, 30 ]; numbers.sort(); console.log(numbers); // النتيجة // [ 0, 1, 10, 2, 20, 3, 30 ] في حالة تم تمرير دالة المقارنة الخاصة بطريقة الفرز التي تقبل عاملين وترجع قيمة تحدد ترتيب الفرز. فالنتيجة تكون على حسب طريقة الفرز في الدالة الممررة. يوضح ما يلي كيفية إستعمال دالة المقارنة: let numbers = [0, 1 , 2, 3, 10, 20, 30 ]; numbers.sort( function( a , b){ if(a > b) return 1; // نرجع عدد موجب if(a < b) return -1; // نرجع عدد سالب return 0; // نرجع 0 }); عند كل دورة تقوم الدالة ()sort بمقارنة زوجين من المصفوفة 0 و 1 ثم 1 و 2 ثم 2 و 3 و هذا ... في حالة تم إسترجاع عدد موجب من دالة المقارنة تضع العدد b في رتبة أقل من a وفي حالة تم إسترجاع عدد سالب فإن دالة المقارنة تضع العدد b في رتبة أكبر من a أما في حالة إسترجاع 0 فتعتبر a يساوي b وتترك مواقعها دون تغيير. بإختصار عند كل دورة تأخد الدالة عددين من المصفوفة, العدد الأول مع العدد اللذي بجانيه وتقارن بينهما ثم تغير مركزهما حسب الأمر الموجود في الدالة.
×
×
  • أضف...