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

محمد عاطف17

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

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

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

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

    29

كل منشورات العضو محمد عاطف17

  1. لا شكر على واجب . هذا ليس مقياسا للسرعه المطلقة ولكن هو مقياس لتجربة المستخدم يمكنك تجربة قياس سرعة youtube و facebook ستجد أن النسبة الخاصة بهم قليلة جدا مع أن الموقع سريع في التصفح ولكن هو مشكلة تجربة المستخدم وللأسف لن تستطيع جعل النسبة 100% في الهاتف وذلك بسبب التنسيقات والصور ولهذا تجد أن معظم المواقع المشهورة تنشأ تطبيقا للهاتف وذلك لتقليل الضغط على الموقع وأيضا لتحسين تجربة المستخدم . أما بالنسبة للمشكلة التي لديك فهي بسبب الصورة حيث أن الصورة تأخذ وقتا كبيرا جدا في التحميل . فيتم تحميل الصفحة بأكملها والصورة لم يتم تحميلها . حاول تصغير حجم الصورة أو إستخدام صورة أخري وقم بالتجربة مرة أخري.
  2. لا، هذا ليس صحيحاً. AMP (Accelerated Mobile Pages) هو مشروع تم تطويره بواسطة جوجل لتحسين سرعة تحميل صفحات الويب على الأجهزة المحمولة. يتم استخدام AMP لإنشاء صفحات ويب بنية خاصة تهدف إلى تقديم تجربة استخدام أسرع وأكثر سلاسة على الهواتف الذكية والأجهزة اللوحية. لكن AMP ليس بديلاً للـ HTML. بالعكس، AMP يستخدم HTML كأساس لبناء صفحات الويب، ولكنه يفرض بعض القيود والتعديلات على HTML و CSS لتحقيق تحسينات في الأداء. وإذا كان موقعك بسيطا وكما أخبرت أن موقع عبارة عن موقع للطقس فإذا إستخدامك ل AMP سيصعب الأمور عليك و لن تجد منه الإستفادة الكبيرة حيث أنه لن يستطيع زيادة موقعك بالسرعه التي تتوقعها . ولكن إذا كان الموقع كبيرا مثل مواقع wordpress و nextjs و react فمن الممكن أن يساعدك كثيرا في تسريع الموقع و إعطاء تجربة إستخدام جيدة.
  3. يجب عند إستقبال أي قيمة من المستخدم التأكد من إمساك الأخطاء وعدم تركها هكذا حيث لا نضمن ما الذى سوف يقوم المستخدم بإدخاله لذلك لا نترك الأمر متاحا للأخطاء الغير متوقعه. الخطأ الذي يحدث لديك هو من نوع ValueError حيث أنك تستخدم الدالة int والتي تقوم بتحويل السلسلة النصية إلى رقم وإذا كانت السلسلة النصية تحتوي أي رموز أو نصوص سترجع الدالة int خطأ من نوع ValueError أي خطأ في القيمة . لذلك يمكننا حل المشكلة عن طريق try except في بايثون هكذا : import random print("""Welcome to the Coin Guessing Game! \nchoose a method to toss the Coin: \n 1. Using random.random() \n 2.Using random.randint() \n""") try: num = int(input("enter 1 or 2: \n")) except ValueError: print("Invalid choice. please select either 1 or 2,") exit() if num == 1: if random.random() >= 0.5: computer_result = "heads" else: computer_result = "tails" elif num == 2: if random.randint(0,1) == 0: computer_result = "heads" else: computer_result = "tails" else: print("Invalid choice. please select either 1 or 2,") exit() user_num = input("enter your guess(heads or tails):") if user_num.lower() == computer_result.lower(): print("congratulations! you win") else: print("sorry, you lost!") print(f"the computer's coin toss result was: {computer_result}") لاحظ هنا إستخدما try و except حول سطر الذى يحوي الدالة int ونقوم بإمساك الخطأ ValueError try: num = int(input("enter 1 or 2: \n")) except ValueError: print("Invalid choice. please select either 1 or 2,") exit() وبذلك إذا أدخل المستخدم قيمة غير صالحة ستلقى الدالة int خطأ ValueError ونحن سنمسك هذا الخطأ لنتعامل معه ونظهر رسالة للمستخدم بأن القيمة المدخلة خاطئة ونوقف تنفيذ الكود.
  4. 2وعليكم السلام ورحمة الله وبركاته. هذا يعتمد على نظام الموقع . فإذا كان الموقع يستخدم اطر عمل للواجهات الامامية مثل react او vue او angular فالتحيثات سيكون امرها بسيط . حيث قبل الرفع يتم محاكاة التحديثات في بيئة للتطوير وذلك للتاكد من عدم وجود اى اخطاء في التحديث والتأكد من ان كل شئ يعمل بشكل جيد. بعد ذلك يتم رفع الملقات والرفع فعليا لن ياخذ اكثر من دقيقة لهذا لن يتأثر المستخدم او يشعر بأن هناك مشكلة سيجد ان التصميم قد تغير بشكل مفاجئ. اما تحديثات الواجهات الخلفية هي التي تأخذ وقتا طويلا ويجب تعطيل الموقع معها وذلك لانه يتم تحديث قاعدة البيانات مع تحديث ملفات كثيرة لتنفيذ اوامر جديدة او إصلاح اعطال موجودة او حتي تطبيق تحديثات امنية . وهنا يجب تعطيل السيرفر عن طريق وضع التطبيق فى حالة الصيانة وعدم إستقبال طلبات وسيتم إظهارة شاشة للمستخدم تفيد بتنفيذ صيانه على الموقع . وذلك لتفادي حدوث مشكلات فإذا كان يتم عمل تحديثات لقاعدة البيانات مثلا ولم يتم تعطيل الموقع فمن الممكن ان البيانات ستصل لقاعدة البيانات تالفه او غير مكتملة وايضا الاكواد سيحدث بها مشاكل لذلك يجب تعطيل الموقع. لهذا يوجد فرق في تحديث الواجهات الامامية والواجهات الخلفية فالواحهات الامامية اقصى مشكلة يمكن ان تحظث للمستخدم اثناء رفع التعديلات هي فقط ظهور التنسيق بشكل خاطئ حيث لم يتم رفع جميع الملفات بعد لهذا لا يجب تعطيل الموقع اثناء رفع التعديلات.
  5. لا بالطبع لا يجب أن تكون نفس الأكواد تمام فالمدربون لا يمتحنونك في كيفية نقلك للأكواد بل في فهمك وطريقة تنفيذك للأمور. ما يجب عليك التأكد منه هو أن المشاريع مكتملة وتعمل بشكل جيد أما الطريقة التي قمت تنفيذها في المشاريع سيقوم المدرب الذى سيمتحنك بتقيم الأكواد ومن ثم يوضح لك أماكن القصور الخاصة بك وإذا لاحظ شئ خاطئ أو ظهر له عدم فهمك له بشكل جيد سيخبرك بمراجعته وذلك لمصلحتك. لذلك لا تقلق أهم شئ فقط التأكد من عمل كل المشاريع دون أخطاء ومن ثم يمكنك التقدم للإختبار
  6. وعليكم السلام ورحمة الله وبركاته . للأسف لا توجد أي طريقة لمسح شاشة ال IDLE في بايثون . ولكن يمكنك الضغط على CTRL + J وسيقوم بإضافة أسطر فارغة إلى أن تصل لأسفل الصفحة ويمكنك بعد ذلك الكتابة كما تريد.
  7. لا تقلق من فضلك قم بمراسلة الدعم من خلال الرابط التالي وسيساعدونك في الوصول إلى الدورة : https://support.academy.hsoub.com/conversations
  8. لا يوجد سلايدات حاليا للدروس حيث من المفترض على الطالب تلخيص الدرس حسب فهمه و ذلك لتثبيت المعلومة لديه وحتي يكون أسهل في المراجعة بالنسبة له. وإذا ما واجهتك مشكلة في فهم أو عدم وضوح أي شئ يمكنك السؤال وستجد جميع المدربين متاحون لمساعدتك في أي وقت. ويمكنك هنا قراءة المقالات في قسم الدروس والمقالات من خلال الرابط التالي : https://academy.hsoub.com/programming/ او موسوعة حسوب حيث ستجد شرح للأساسيات و كل شئ عن مختلف اللغات ومقسمة بشكل جيد يسهل البحث والمذاكرة ويمكنك الذهاب إليها عن طريق الرابط التالي وإختيار اللغة التي تريدها : https://wiki.hsoub.com/الصفحة_الرئيسية ولكن أي ملفات أو أكواد يتم شرحها وكتابتها ستجدها في أول درس من كل مسار حيث ستجد الملفات النهائية الخاصة بالمسار بأكمله موجودة في رابط أسفل الدرس الأول من المسار.
  9. نعم ما فهمته صحيح وأيضا كما وضحت لك الأمر يأخذ وقتا حتي يبدأ بالظهور ويجب أن تكون لديك أساسيات ال SEO وهي لتحسين الظهور في محركات البحث لتظهر نتائجك بسرعه و في الصفحات الأولي من محركات البحث . ويجب إنشاء حساب على Google Search Console كما وضحت لك لمتابعة إحصائيات ظهور موقعك و متابعة أي أخطاء خاصة بمحركات البحث لإصلاحها
  10. ستجد أسفل الدرس في نهاية الصفحة صندوق للتعليقات كما هنا يرجي وضع الأسئلة هناك أسفل الدرس حيث هنا هو قسم الأسئلة العامة ولا نقوم بالرد على الأسئلة الخاصة بالدورات هنا وذلك لمساعدتك بشكل أفضل.
  11. لاحظ أن المجلد assets لديك مفقود فإذا قمت بفتح نافذة network في ال developer tools ستجد أن الملفات الثابته مثل css و js لا يتم تحميلها وهذا لأن المسار الخاص بها في مجلد assets وهو ليس موجود لديك ولقد نظرت إلى ال github ولم أجد المجلد لديك لذلك يجب عليك رفع المجلد مع جميع الملفات حتي تعمل التنسيقات لديك .
  12. الطريقة التي قمت بها بالتعامل مع التصميم المتجاوب تعد مقبولة ولكن هناك بعض النقاط التي يجب مراعاتها لضمان أفضل الممارسات وتجربة مستخدم متميزة: استخدام vw و rem: استخدام vw لتحديد حجم الخط للعنصر الجذر (root) يعتبر مناسبًا، حيث يعتمد حجم الخط على عرض الشاشة. استخدام rem للعناصر الأخرى يجعلها تعتمد على حجم الخط المحدد للعنصر الجذر. استخدام Media Queries: تغيير حجم الخط للعنصر الجذر وبعض التعديلات الأخرى باستخدام Media Queries هو خطوة جيدة لضمان أن التصميم يتكيف بشكل جيد مع مختلف أحجام الشاشات. يمكنك تعديل أي جوانب أخرى من التصميم أيضًا كالهوامش والأبعاد بناءً على الاحتياجات. النقاط التي يجب مراعاتها: القراءة والنصوص: تأكد من أن النصوص مقروءة بشكل جيد على جميع الأحجام، حيث يجب أن تكون كافية للقراءة دون تكبير. بعض المشاكل التي تتواجهها تلك الطريقة : لن يتمكن الأشخاص الذين يستخدمون ميزة التكبير/التصغير في متصفحهم أو يقومون بزيادة حجم خط النظام من القيام بذلك حيث أن vw لا تحترم تلك القيم فمن الممكن أن الشخص صاحب الهاتف أو الشاشة الصغيرة لديه مشكلة في القراءة ويقوم بتكبير الخط على هاتفه ولذلك فإن vw ستظهر الخط صغيرا بناء على عرض الشاشة وليس على قيمة الخط الذى يستخدمها المستخدم والتي تحترمها وحدة قياس rem و em . هل هناك طريقة أفضل؟ نعم من الممكن إستخدام الدالة calc() للحسابات الرياضية في الأبعاد واحجام الخطوط إذا أردت حيب باختصار، الطريقة التي اتبعتها تعد مناسبة ولكنها ستجعل حجم الخط يعتمد على القيم التي وضعتها بناء على عرض الشاشة وليست القيمة التي يستخدمها المستخدم.
  13. ستجد أسفل الدرس في نهاية الصفحة صندوق للتعليقات كما هنا يرجي وضع الأسئلة هناك أسفل الدرس حيث هنا هو قسم الأسئلة العامة ولا نقوم بالرد على الأسئلة الخاصة بالدورات هنا وذلك لمساعدتك بشكل أفضل.
  14. لظهور موقعك على محركات البحث فهذا يأخذ وقتا ليس بالقليل فمن الممكن البدأ في الظهور من بعد الإسبوع الأول لرفعه على الإستضافه . حيث لتظهر المواقع على محركات البحث فإن محركات البحث تقوم بعمل زحف (crawling ) تلقائي على جميع المواقع الموجودة على الإنترنت وذلك لعمل index لها ولتظهر على محركات البحث وذلك بعد التأكد من الموقع لديه SEO جيد ومناسب لمحركات البحث . عدم ظهور الموقع لديه العديد من الأسباب و السبب الرئيسي هو أن الإستضافات المجانية تمنع عمليات الزحف لهذه المواقع حيث يمكنك منع ظهور موقع على محركات البحث بالطرق التالية لذلك تأكد من إلغائهم إذا كانت موجودة لديك : وجود ملف robots.txt في الجذر لديك ووجود القيمة التالية User-agent: * Disallow: / فإذا كان الملف موجود ولديه القيمة السابقة فإن محركات البحث لا تقوم بعمل زحف لهذا الموقع وبالتالي لن يظهر لديها . وجود عنصر meta في الصفحات لديك كالتالي : <meta name="robots" content="noindex,nofollow" /> إذا كان يوجد هذا العنصر لديك فهو أيضا يمنع محركات البحث من الزحف لموقعك . من الممكن أيضا أن الإستضافات المجانية تمنع الزحف من خلال حظر ال ip الخاص بمحركات البحث للزحف ولهذا إذ لم يكن لك صلاحية الوصول للحظر فلن تستسطيع فك ذلك الحظر . ويمكنك إستعمال Google Search Console لمعرفة الخطأ أو الشئ الذي يمنع الوصول لموقعك . حيث يمكنك عمل حساب على الموقع وإضافة موقعك وسيطلب منك رفع ملف على الموقع للتأكد من أن المالك للموقع وبعد رفع الملف ستجد إحصائيات موقعك على محرك بحث google . ويمكنك رؤية المشاكل التي تواجهك. وبالنسبة لأن الموقع الذى رفعته هو مشروع تخرج فيفضل عدم إظهاره على محركات البحث فإنه لن يدخل عليه مستخدمين كثر ولن يزروه أحد وحتي إذا ظهر موقعك فسيظهر في الصفحات الأخيرة لمحركات البحث وهذا لأنه لن يكون لديه زوار .
  15. بعد شرائك للدورة من المفترض أن تجد خانة في أعلى الموقع تسمي دوراتي عند الضغط عليها ستظهر الدورات المشترك بها ويمكنك الضغط على إسم الدورة وستفتح لك جميع المسارات التي بداخل تلك الدورة ويمكنك الآن البدأ في المذاكرة . وإذا لم تظهر لك تلك الخانه فيمكنك التواصل مع الدعم من خلال الرابط التالي وسيساعدونك إن شاء الله في ظهور الدورة لديك.
  16. هذا يعتمد على ما الذي تريد تحقيقة و عدد الملفات التي لديك . أفضل طريقة لفعل ذلك هو تحويل جميع الطلبات إلى ملف رئيسى عن طريق ملف .htaccess ومن ثم يقوم الملف الرئيسي بإرسال الطلب إلى الصفحة الصحيحة . ولكن توجد طرق أخري وهي تعتمد علي هل تريد وضع قاعدة عامة أم عدد ملفات محددة ولكن إذا قمت بوضع قاعدة فلن تستطيع التحويل إلى php و html معا بل يمكن التحويل إلى أحدهما فقط . في ملف .htaccess : <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^\.]+)$ $1.php [NC,L] </IfModule> RewriteEngine On: تفعيل mod_rewrite. RewriteCond %{REQUEST_FILENAME} !-d: التأكد من أن المسار المطلوب ليس دليلا حقيقيا. RewriteCond %{REQUEST_FILENAME} !-f: التأكد من أن المسار المطلوب ليس ملفا حقيقيا. RewriteRule ^([^\.]+)$ $1.php [NC,L]: هذه القاعدة تأخذ أي اسم ملف بدون نقطة وتضيف .php إلى النهاية. على سبيل المثال /example سيتم إعادة كتابتها داخل الخادم إلى /example.php ويتم تنفيذ ملف example.php . أما في html فيمكنك تغير php في السطر الثالث إلي html
  17. وعليكم السلام ورحمة الله وبركاته. بالنسبة للخوارزميات المناسبة لتطبيقاتك المحددة يمكن أن تختلف الخيارات بناء على نوع البيانات والمشكلة المحددة . إليكي بعض الأمثلة للخوارزميات الشائعه لكل تطبيق: تحليل المشاعر: NLP: استخدام الأدوات والمكتبات المعروفة في تحليل المشاعر مثل NLTK وspaCy.و الخوارزميات المناسبة مثل Vader Sentiment Analysis، TextBlob، والموديلات العميقة مثل LSTM للتعامل مع توافرها. Basic ML: يمكن استخدام خوارزميات بسيطة مثل Naive Bayes أو Logistic Regression على مجموعة متنوعة من الميزات مثل تواتر الكلمات (Bag of Words) أو TF-IDF لتصنيف المشاعر. تصنيف الشخصيات بالاعتماد على التغريدات: NLP: استخدام أساليب تعلم الآلة المتقدمة مثل تصنيف النصوص باستخدام الشبكات العصبية العميقة.والخوارزميات المناسبة مثل Word2Vec، GloVe، FastText لتمثيل النصوص، ومن ثم استخدام SVM أو شبكات عصبونية للتصنيف. Basic ML: يمكن استخدام خوارزميات مثل Naive Bayes أو SVM مع استخدام الميزات المستخرجة من التغريدات مثل عدد الكلمات المستخدمة، والهاشتاجات، والرموز التعبيرية لتصنيف الشخصيات. تصنيف الأخبار الكاذبة: NLP: استخدام تقنيات NLP المتقدمة مثل تحليل التعبيرات المعقدة واستخدام الشبكات العصبونية العميقة. والخوارزميات المناسبة TF-IDF، Word Embeddings، والموديلات مثل BERT لفهم السياق والمعاني الضمنية للنصوص. Basic ML: استخدام خوارزميات مثل Naive Bayes أو Decision Trees لتصنيف الأخبار بناءً على مجموعة متنوعة من الميزات مثل كلمات المحتوى، والهيكل اللغوي للجمل، وأنماط الأسلوب.
  18. لا لايمكن التحكم في عمل الموقع الوصول إليه إذا تم إيقافه من قبل المسؤولين عليه . فيبدوا أنه كانت توجد مشاكل لديهم سابقا أو ثغرات وقد قامو بحلها أو اضافو خاصية عدم إتاحة الخدمة إلا في الوقت المحدد. ولا أيضا لا يمكن تفضيلك على أحد من خلال السيرفر حيث الخادم يقوم بتنفيذ الطلبات حسب الوصول أولا فإذا قمت بالذهاب إلى العنوان وكان الخادم مشغولا وتم إستخدام جميع الموارد فستجد بطئ أو يظهر لك خطأ ومن الممكن أن أحد ذهب إلى الخادم بعدم مباشرة ولكن في ذلك الوقت كان الخادم متاحا حاليا فسيتم تنفيذ طلبه لهذا لا يمكن التحكم بهذا السلوك .
  19. وعليكم السلام ورحمة الله وبركاته . هذا يعتمد عليك وعلي معرفتك السابقة ةالمجال الذى تريد الدخول فيه. إذا لم يكن لديك خبرة سابقة في مجال التكنولوجيا عموما فإنه يفضل أخذ دورة علوم الحاسب قبل البدأ مباشرة في دورة الذكاء الاصطناعي وهذه تؤهلك عموما للدخول في اي مجال تريده وتساعدك في اختيار المجال إذا كنت مشتتا ومحتارا في إختيارالمجال. ولكن إذا كانت لديك خبرة سابقة واساسيات علوم الحاسب وتريد تطبيق الذكاء الاصطناعي مع تطوير البرمجيات فيمكنك الاشتراك في اى دورة اخري. واليك بعض الاجوبة التالية يفضل قرائتها جيدا ستساعدك في إختيارالدورة الثانية :
  20. يمكنك الإتصال بالبنك المصدر للبطاقة وسؤاله عن سبب رفض العمليه حيث أن الخطأ الخاص بعمليه مرفوضه هو بسبب البنك . بعض بالنوك حاليا لا تعمل لديها بطاقة الخصم ( debit card) في المدفوعات بالعملة الأجنبية ولكن تتيح لك بطاقة الائتمان (Credit Card) . لذلك يمكنك التواصل مع البنك الخاص بك والسؤال عن إمكانية الشراء من الخارج بال debit card أم لا . وإذا كان لا يتيح يمكنك طلب بطاقة ائتمان ولكن لا أنصح بها لما لها من حرمانية . أو يمكنك الدفع عن طريق بايبال ويمكنك ربط بطاقة debit card بحساب باي بال ولكن تاكد من البنك الخاص بك من أنه يسمح بالربط بحساب باي بال . أيضا من الممكن أن تجعل شخص يشتري لك بطاقة هدية بقيمة الدورة التي تريدها ثم استخدامها وسيتم إضافة الرصيد الخاص بقيمة البطاقة لحسابك وستجد تفاصيل عن ذلك هنا: شراء بطاقة هدية استخدام بطاقة الهدية
  21. إن الأكاديمية هنا تطور دائما الدورات بناء على سوق العمل والتقنيات المطلوبة والمجالات المتاح. وبخصوص الدورات الحالية فيتم تحديثها دائما كل فترة إن لزم الأمر لمتابعة التطورات التي تحدث والتقنيات الجديدة التي تستحدث. أما بخصوص إضافة دورات جديدة فالأمر كما أخبرتك يعتمد على عدّة عوامل منها مدى الإحتياج لها والطلب عليها والوظائف المتاحة لها سواء عمل حر أو شركات ،لذا الأمر راجع لإدارةالأكاديمية في تلك النقطة ويمكنك المتابعة هنا لأي تحديث سوف يحدث. ما هي الدورة التي تريد أن تتاح على الأكاديمية هنا ؟
  22. وعليكم السلام ورحمة الله وبركاته . بالنسبة إلى الإختبار جميع الدورات الإختبار بها على نفس الشاكلة. بعد اتمامك للدورة سيكون عليك التواصل معنا من خلال مركز مساعدة حسوب لتحديد موعد الامتحان, وسيكون على الشكل التالي: اجراء محادثة صوتيّة لمدة 30 دقيقة يطرح المدرّب عليك أسئلة متعلّقة بالدورة والأمور التي نفّذتها خلالها. يحدد لك المدرّب مشروعًا مرتبطًا بما قمت به أثناء الدورة لتنفيذه خلال فترة محددة تتراوح بين أسبوع الى أسبوعين. اجراء محادثة صوتيّة أخرى لمدّة 30 دقيقة يناقش بها مشروعك وما نفذته وتطرح أسئلة خلالها. يجب عليك على الأقل الإنتهاء من 4 مسارات للتقدم للأختبار وسيتم أمتحانك على المسارات التي سوف تحددها و يجب عليك أيضا رفع المشاريع التي قمت بكتابتها أثناء الدورة ومتابعة الدروس على موقع github و إرفاقها قبل التقدم لإمتحان حتي يتم تقيمها . ويمكنك الدخول على الرابط التالي لتفاصيل بخصوص الإختبار والشهادة
  23. const [showDeleteMessage, setShowDeleteMessage] = useState(false); const [stopDeleting, setStopDeleting] = useState(false); const [deleting, setDeleting] = useState(false); const [timeout, setTimeout] = useState(false); const handleStopDeleting = () => { setStopDeleting(true); setShowDeleteMessage(false); clearTimeout(timeout); console.log("Stop deleting!"); }; const deleteMyPost = async () => { try { // عملية حذف البوست } catch (error: any) { // الخطأ } }; const confirmDeleting = () => { setShowDeleteMessage(true); const timeout = setTimeout(() => { if (!stopDeleting) { setDeleting(true); deleteMyPost(); } }, 5000); setTimeout(timeout); }; return { <button onClick={confirmDeleting}> "delete post" </button> <button onClick={handleStopDeleting}> "cancel" </button> } الخطأ الأساسي أنك عند الضغط على زر cancel لم تستدعي الدالة التي تقوم بإلغاء الحذف بل فقط كنت تقوم بتغير القيمة فكان يجب عليك الضغط على cancel ثم delete post للإيقاف . ولكن الآن قد قمت بفصل الإثنين لك عند الضغط على cancel تقوم بإلغاء setTimeout
  24. يمكنك بوضعها null أو false والتأكد في الشطر الخاص ب stopAction أن لا تكون القية null أو false علي حسب القيمة الإفتراضية التي وضعهتها
×
×
  • أضف...