أنا عضو في منتدى Discourse (BlenderArtists.org)، ولدي شاشة بدقة 4K تتيح لي عرض صفحتين من المنتدى جنبًا إلى جنب.
في بعض الأحيان، عندما أخطط لكتابة تعليق طويل، وأقوم بإعداد إجابتي (مع اقتباسات متعددة من موضوع طويل حالي)، أفتح محرر الرسائل في الصفحة اليسرى وأتصفح نفس الموضوع في الصفحة اليمنى.
لكن عند فعل ذلك، تظهر هذه الرسالة في كثير من الأحيان:
يتم تحرير المسودة في نافذة أخرى. يرجى إعادة تحميل هذه الصفحة.
لست ضد هذا التحذير (أنا متأكد من أنه مفيد في بعض الظروف).
لكن هل من الممكن إضافة خيار في تفضيلات المستخدم لتعطيله؟ أم لتحديد تردد ظهوره (المؤقت)؟
عذرًا، لقد تلقينا عددًا كبيرًا جدًا من طلبات الدعم بشأن هذا الأمر، لذا فإن التذكير المتكرر مقصود. هذه العملية محفوفة بمخاطر عالية وقد تفقد منشورك بالكامل.
لقد تعرضت لمشكلة فتح المسودة تلقائيًا أيضًا، لكنها أسوأ من مجرد ظهور رسالة تحذير. عدت إلى كتابة منشوري، ثم ظهرت نافذة منبثقة لاحقًا تحاول توجيهي إلى علامة التبويب الأخرى التي تحتوي على مسودة أقدم. في هذه المرحلة، إذا قمت بتحديث الصفحة، فإنني أحصل فقط على النسخة الأقدم من مسودتي، لذا من هذه الناحية، هذه الميزة لا تمنع فعليًا ما تحاول منعه.
لا أعرف ما إذا كان يحدث قبل بدء الكتابة. لقد جربت إعادة إنتاج المشكلة في موقع Meta، ولم تحدث إلا عندما بدأت الكتابة في علامة التبويب الثانية. أميل إلى حدوث هذا الخطأ بعد وقت قصير من تكرار علامتي التبويب للرجوع إلى ما أكتبه. أفقد تتبع العلامة التبويب التي بدأت فيها، وعندما أبدأ بالخطأ الكتابة في العلامة الثانية، تظهر التحذيرات.
هل من الممكن أو معقول اكتشاف ما إذا كانت علامة تبويب أخرى تحتوي بالفعل على محرر الكتابة مفتوحًا للموضوع المعطى، وإذا كان الأمر كذلك، عدم فتح محرر الكتابة للعلامة التبويب الجديدة؟
هذا معقد للغاية حقًا… قد يكون هناك شيء يمكننا فعله باستخدام عمال الويب، لكنه تغيير ضخم لا أود القيام به.
أحتاج إلى خطوات تكرار دقيقة خطوة بخطوة، حيث تنطلق تحذيراتنا في وقت مبكر جدًا، وفي أسوأ الأحوال ستفقد بضع كلمات فقط. أعتقد أنه إذا كنت غير متصل بالإنترنت، فقد تصبح الأمور غريبة، لكن هذه حالة هامشية كبيرة… الحل البديل هو النسخ واللصق.
لقد ألقيت نظرة سريعة على المنشور الأصلي.
لا أستطيع تكرار هذا، هل يمكنك تزويدي بخطوات دقيقة تؤدي إلى هذه الرسالة غير الصحيحة؟ إذا لم تكن تقوم بالتحرير، فهناك حالة هامشية واحدة فقط تحصل فيها على هذه الرسالة بشكل غير صحيح يمكن القول عنه. لكنها حالة هامشية طفيفة جدًا.
افتح اللسان 1 … ابدأ في كتابة الرد
افتح اللسان 2 … تصفح حولك
في اللسان 1 … أكمل الكتابة
في اللسان 2 … صغّر المحرر (ستظهر رسالة تحذير… ولكن مرة واحدة فقط)
ما يمكن أن يحدث والذي قد يسبب لك المشكلة:
افتح اللسان 1 … ابدأ في كتابة الرد
افتح اللسان 2 … عن طريق الخطأ اقتبس شيئًا للرد
في اللسان 1 … أكمل الكتابة … التحذير موجود … بشكل دائم (لأننا سنقوم بإسقاط الاقتباس من (2))
أنا لست متأكدًا تمامًا مما يجب إصلاحه هنا… أحتاج إلى تكرارات دقيقة.
لقد مررتُ بالتأكيد بمواقف فقدتُ فيها كمية كبيرة من المحتوى. ومع ذلك، وبسبب ذلك، كنت حريصًا على عدم استدعاء هذا التنبيه، لذا لا أتذكر الخطوات الدقيقة التي تسببت في الفقدان الكبير في هذه المرحلة.
أعتقد أن المشكلة قد تكمن في حفظ مسودة تحل محل ما قمت به في التبويب 1. إذا حدث ذلك، فقد يؤدي ذلك إلى فقدان كبير في المحتوى. هذا مجرد تكهن في الوقت الحالي، لكنني سأحاول إعادة إنتاج المشكلة بهذه الطريقة وأبلغك بالنتيجة.
أفهم أنك تحتاج إلى خطوات إعادة إنتاج المشكلة. لقد قمت بتعيين تذكير (:تازة:) للنظر في الأمر غداً مساءً. سيكون من المفيد معرفة (على مستوى عالٍ) كيفية عمل اختبار التعارض. هل يتم إنشاء معرف فريد عند تحميل الصفحة أو شيء مشابه لذلك؟
أقصد ببساطة أنه إذا حدثت منافسة … وكان اثنان من المبدعين يردان على نفس الموضوع لنفس المستخدم … فإن واحدًا فقط يفوز في النهاية. في كل مرة نحفظ فيها، يتم اختيار مالك.
حسناً @sam، لدي خطوات لإعادة إنتاج المشكلة. لا أعرف ما إذا كانت مرتبطة بالمشكلة الأصلية التي ذكرها صاحب الموضوع (OP) (بما أن هذا النقاش انحرف قليلاً)، ولكن على أي حال، إليك ما لدي. بشكل عام، إذا فتحت التبويب 2 ولكنك استمريت في الكتابة في التبويب 1 قبل أن ينتهي التبويب 2 من التحميل بالكامل، فإن الصفحة الجديدة تدخل في حالة سيئة. إذا استمريت في الكتابة في التبويب 1 بينما لا يزال التبويب 2 قيد التحميل، فسيحمل التبويب 2 المسودة من التبويب 1 كما كانت عند فتح الصفحة، ولكنك ستظل قادراً على التعديل في التبويب 2 حتى بعد حفظ التبويب 1 لتغييرات إضافية (مما يؤدي إلى تجاوز تلك التغييرات). إليك خطوات إعادة الإنتاج:
افتح الموضوع A وابدأ في كتابة رد.
توقف عن الكتابة ليتم حفظ المسودة.
افتح الموضوع A في تبويب جديد (إن تكرار التبويب أو النقر بزر الماوس الأيمن/الوسط على عنوان الموضوع هو أسهل طريقة لإعادة الإنتاج لأنهم يضطرون إلى تحميل الصفحة بالكامل وبالتالي يكونون أبطأ).
فوراً استمر في كتابة الرد في التبويب 1، قبل أن ينتهي التبويب 2 من التحميل.
توقف عن الكتابة ليتم حفظ المسودة مرة أخرى (سيتم ذلك بنجاح، كما هو متوقع).
انتقل إلى التبويب 2 واكتب في المحرر.
توقف عن الكتابة. سيتم حفظ المسودة حتى لو كان يجب أن تظهر تحذير. سيؤدي هذا إلى تجاوز جميع التغييرات الإضافية التي أجريتها في التبويب 1 من الخطوة رقم 4. (إذا ظهرت لك التحذير كما هو متوقع، فربما انتظرت طويلاً جداً قبل البدء في الكتابة في الخطوة رقم 4.) لاحظ أنه في هذه المرحلة لا يمكنك أيضاً الكتابة في التبويب 1 مرة أخرى دون تحديث ذلك التبويب.
لاحظ أنه في الخطوة رقم 4، لا تحتاج فعلياً إلى التوقف عن الكتابة وحفظ مسودة قبل أن ينتهي التبويب 2 من التحميل. مجرد البدء في الكتابة هو ما يجعل كل شيء في حالة سيئة. في الواقع، ليس من غير المعقول فتح تبويب مكرر في الخلفية للتحقق من الأشياء لاحقاً والاستمرار في الكتابة في التبويب 1 في هذه الأثناء. ولكن القيام بذلك بسرعة كبيرة سيجعل التبويبات في حالة سيئة ويسمح لك بتجاوز ما أضفته في التبويب 1 عن طريق الخطأ. بالطبع، تصغير المحرر يحفظ أيضاً مسودة، لذا بمجرد الدخول في هذه الحالة السيئة، مجرد تصغير المحرر في التبويب 2 لإخفائه عن الأنظار سيؤدي إلى تجاوز أحدث مسودة لك من التبويب 1.
في هذه المرحلة، إذا عدت إلى التبويب 1 حيث كنت تكتب رسالتك في الأصل، فلن تتمكن بعد ذلك من الكتابة وستحصل على التحذير الذي كان يجب أن يظهر في التبويب 2. إذا أدركت أن مسودتك قد ضاعت، يمكنك بالطبع نسخ محتويات المحرر من التبويب 1. ولكن إذا لم تدرك ذلك وأعدت تحميل الصفحة (باتباع تعليمات التحذير)، فسوف تفقد التغييرات التي أجريتها ولن يكون لديك أي طريقة لاستعادتها.
أخبرني إذا كان لا يزال لديك صعوبة في إعادة إنتاج المشكلة مع هذه الخطوات. يمكنني إعادة إنتاج المشكلة بشكل متسق جداً باتباع هذه الخطوات (مع التبديل أحياناً إلى مواضيع جديدة للحصول على مسودات جديدة)، لذا آمل أن تكون هذه المعلومات كافية.
شكرًا جزيلاً لك على إعادة إنتاج المشكلة؛ لقد كان رائعًا وساعدني في عزل المشكلة بسرعة.
أشعر أنني قدمت إجابة غامضة بعض الشيء حول كيفية تتبعنا لإصدارات المسودات. أعتقد أن الأمر يعود إلى أنني كنت ساذجًا بعض الشيء ومعقدًا في خوارزميتي. هذا مزيج قاتل. الخوارزمية الجديدة أسهل بكثير في الشرح.
كلما قام العميل بحفظ مسودة، يخبر الخادم بـ “رقم التسلسل الذي يمتلكه”
إذا تطابق رقم التسلسل، سيزيد الخادم رقم التسلسل بمقدار 1 ويعيده إلى العميل (رقم التسلسل الجديد لدينا)
إذا لم يتطابق رقم التسلسل، سيخبر الخادم العميل بوجود تعارض ولن يحفظ المسودة
عند إعادة تحميل الصفحة/تحميلها، يخبر الخادم العميل برقم التسلسل الحالي
كانت تنفيذي السابق معقدًا للغاية؛ فقد حاول تجنب زيادة رقم التسلسل تحت ظروف عديدة من خلال تتبع مالك التسلسل. أظهرت حالتك الاختبارية مدى سوء ذلك وكيف يمكن أن يتسبب في فقدان المحتوى.
يجب أن يكون هذا نشطًا الآن على meta، فأخبرني إذا تمكنت من اكتشاف المزيد من الحالات الحدية في هذا النظام.
يتطلب هذا قدراً كبيراً من العمل، بالتبديل بين علامات التبويب في المتصفح، ولكن نعم… يبدو أن الإهمال يفشل في تحقيق الإهمال في هذه الحالة، ويجب علينا إصلاح ذلك.