muqawil · مقاول
الميزاتكيف يعملالباقاتالمدونةالشركاء
Englishتسجيل الدخولابدأ الآن
  1. الرئيسية
  2. /
  3. المدونة
  4. /
  5. لماذا يجب أن يعمل برنامج المقاولات بدون إنترنت

التقنية

العمل بلا اتصال: لماذا يفشل برنامج المقاولات في الموقع، وكيف يُبنى ليصمد

تاريخ النشر: 13 يوليو 2026آخر تحديث: 27 يوليو 202610 دقائق قراءة

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

أهم ما في المقال

  • «يدعم العمل بلا اتصال» عادةً تعني «يعرض بيانات مخزّنة» — والفارق كله في إمكانية الكتابة لا القراءة.
  • طابور مزامنة واحد فقط. الطابوران المتوازيان ينتجان تسجيلات مكررة على الشبكات المتقطعة.
  • المزامنة تتوقف عند الخطأ ولا تتخطاه — التخطي يترك فجوات صامتة في السجل.
  • المعرّف الفريد يُولَّد على الجهاز قبل الإرسال، وهو ما يمنع التكرار عند إعادة المحاولة.
  • البيانات الشخصية لا تُخزَّن في ذاكرة المتصفح المؤقتة — التخزين المحلي للمعاملات المعلّقة شيء، وتخزين ردود الخادم شيء آخر.

محتويات المقال

  1. 01المشكلة ليست الشبكة الضعيفة، بل المتقطعة
  2. 02القراءة بلا اتصال سهلة، الكتابة هي المسألة
  3. 03كيف يُبنى طابور المزامنة
  4. 04التعارض: ماذا لو عدّل شخصان الشيء نفسه؟
  5. 05ما الذي يجب ألا يُخزَّن على الجهاز
  6. 06أسئلة تكشف الادعاء
  7. 07كيف بُنيت مقاول

المشكلة ليست الشبكة الضعيفة، بل المتقطعة

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

في هذه الحالة، متصفح الجهاز يقول «متصل»، والتطبيق يرسل الطلب، والطلب يُسلَّم إلى الخادم فعلاً — لكن الرد لا يعود قبل انتهاء المهلة. التطبيق يظن أن العملية فشلت، فيعيد المحاولة. والخادم استقبلها مرتين.

تحذير: هذا هو مصدر التسجيلات المكررة

تقرير يومي يظهر مرتين، أو تسجيل حضور مكرر، أو طلب مواد أُرسل ثلاث مرات — كلها أعراض للحالة نفسها: إعادة محاولة بلا معرّف فريد يمكن للخادم أن يتعرّف عليه.

الاختبار الحقيقي لأي تطبيق ميداني ليس «هل يعمل بدون إنترنت؟» بل «ماذا يحدث حين تنقطع الشبكة في منتصف الإرسال؟».

القراءة بلا اتصال سهلة، الكتابة هي المسألة

حين يقول مزود برنامج إن تطبيقه «يعمل بدون إنترنت»، اسأل سؤالاً واحداً: هل أستطيع إنشاء سجل جديد وأنا غير متصل؟ الفرق بين الإجابتين هو الفرق بين ميزة تسويقية وميزة تشغيلية.

مستويات دعم العمل بلا اتصال
المستوىما يستطيعه المستخدمالجهد الهندسي
عرض مخزّن مؤقتاًرؤية آخر بيانات حُمِّلت وهو متصلمنخفض
قراءة كاملةتصفح المشاريع والمهام والمخططات كاملة بلا اتصالمتوسط
كتابة مع طابورإنشاء وتعديل السجلات، والمزامنة لاحقاًعالٍ
كتابة مع حل تعارضكل ما سبق، مع التعامل مع تعديل متزامن من مستخدم آخرعالٍ جداً

أغلب المنتجات تقف عند المستوى الأول وتسوّق نفسها كأنها في الثالث. والفريق الميداني يكتشف الفرق في اليوم الأول من الاستخدام الحقيقي.

كيف يُبنى طابور المزامنة

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

  1. 1

    توليد معرّف فريد على الجهاز

    قبل الحفظ المحلي، يُولَّد معرّف عالمي (UUID) للعملية. هذا المعرّف يُرسل مع الطلب، فيستطيع الخادم أن يميّز «عملية جديدة» من «إعادة إرسال لعملية استقبلها سابقاً».

  2. 2

    الكتابة المحلية أولاً

    العملية تُخزَّن في IndexedDB مع حالتها ووقت إنشائها. المستخدم يرى النتيجة فوراً في الواجهة — لا انتظار لرد الخادم.

  3. 3

    الإرسال بترتيب الإنشاء

    الطابور يُفرَّغ بترتيب زمني صارم. إرسال تعديل قبل إنشاء السجل الذي يعدّله ينتج خطأ مضللاً في الخادم.

  4. 4

    التوقف عند خطأ التحقق لا التخطي

    إذا رفض الخادم عملية لخطأ في البيانات، يتوقف الطابور ويُعرض الخطأ للمستخدم. الاستمرار يعني أن العمليات التالية — التي قد تعتمد على المرفوضة — ستفشل بصمت أو تنتج بيانات خاطئة.

  5. 5

    إعادة المحاولة بتباعد متزايد لأخطاء الشبكة فقط

    خطأ الشبكة يستحق إعادة المحاولة؛ خطأ التحقق (٤٠٠) لا يستحقها أبداً — إعادة إرسال بيانات غير صالحة لن تجعلها صالحة.

تحذير: طابور واحد فقط

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

التعارض: ماذا لو عدّل شخصان الشيء نفسه؟

مهندس الموقع يحدّث نسبة إنجاز مهمة وهو بلا اتصال في الساعة العاشرة. مدير المشروع يحدّث النسبة نفسها من المكتب في الحادية عشرة. يعود المهندس إلى التغطية في الواحدة ظهراً وتُرسل عمليته. أي القيمتين تبقى؟

لا توجد إجابة صحيحة تقنياً — الإجابة تعتمد على المجال. لكن هناك ثلاث سياسات، واختيار واحدة صراحةً أفضل بكثير من تركها للصدفة.

  • آخر كتابة تفوز: الأبسط، والمقبول لبيانات لا يضر فقدان نسخة منها (ملاحظة نصية مثلاً).
  • الرفض عند تغيّر النسخة: الخادم يرفض العملية إذا تغيّر السجل منذ قراءته، ويُعرض على المستخدم أن يراجع ويعيد المحاولة. الأنسب للأرقام المالية والكميات.
  • الدمج على مستوى الحقل: العمليتان تُقبلان إن كانتا تعدّلان حقلين مختلفين. الأفضل تجربة للمستخدم والأعلى تكلفة هندسية.

نصيحة: الإلحاق أأمن من التعديل

كثير من عمليات الموقع يمكن تصميمها كإضافة سجل جديد بدل تعديل سجل قائم: «أُنجز اليوم ٤٠ م³» بدل «الإجمالي الآن ٢٤٠ م³». الإضافة لا تتعارض مع إضافة أخرى، فيختفي جزء كبير من المشكلة من الأساس.

ما الذي يجب ألا يُخزَّن على الجهاز

الحماس للعمل بلا اتصال يقود أحياناً إلى تخزين كل شيء محلياً. هذا خطأ أمني، وهو أخطر في منصة متعددة المستأجرين حيث قد يُستخدم الجهاز نفسه من أكثر من شخص.

  • ردود الخادم التي تحتوي بيانات شخصية (رواتب، بيانات عمال، مستندات موارد بشرية) لا تُخزَّن في ذاكرة المتصفح المؤقتة.
  • صفحة البديل عند انقطاع الاتصال يجب أن تكون صفحة ثابتة لا تخص مستأجراً بعينه — لا لوحة تحكم مخزّنة، وإلا عُرضت بيانات مستخدم على مستخدم آخر.
  • رموز الجلسة لا تُخزَّن في التخزين المحلي القابل للقراءة من أي سكربت.
  • ما يُخزَّن هو المعاملات المعلّقة التي أنشأها المستخدم الحالي — لا نسخة من قاعدة البيانات.
العمل بلا اتصال يعني أن تحتفظ بما لم تُرسله بعد، لا أن تحتفظ بنسخة من كل ما استقبلته.

أسئلة تكشف الادعاء

قبل شراء أي منصة ميدانية، هذه الأسئلة الخمسة تكشف مستوى الدعم الحقيقي خلال دقائق:

  1. 1هل أستطيع إنشاء تقرير يومي جديد ورفع صورة عليه وأنا في وضع الطيران؟
  2. 2ماذا يحدث إذا أغلقت التطبيق تماماً قبل عودة الشبكة — هل تبقى العملية؟
  3. 3إذا انقطع الاتصال أثناء الإرسال، هل يظهر السجل مرة واحدة أم مرتين؟
  4. 4إذا رفض الخادم عملية في منتصف الطابور، ماذا يحدث للعمليات التالية؟
  5. 5ما الذي يُخزَّن على الجهاز، ومتى يُمسح، وماذا يحدث عند تسجيل الخروج؟

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

كيف بُنيت مقاول

مقاول تطبيق ويب تقدمي (PWA) مبني على هذا النموذج: مصدر واحد للحقيقة للمعاملات المعلّقة، مخزّن في IndexedDB، يُفرَّغ بترتيب الإنشاء ويتوقف عند أخطاء التحقق بدل تخطيها.

  • التقارير اليومية وتحديثات المهام وتسجيلات الحضور تُنشأ بلا اتصال وتتزامن لاحقاً.
  • معرّف فريد يُولَّد على الجهاز لكل عملية، فيمنع التكرار عند إعادة المحاولة.
  • طلبات الواجهة البرمجية لا تُخزَّن مؤقتاً إطلاقاً — الردود قد تحتوي بيانات شخصية.
  • صفحة البديل عند انقطاع الاتصال ثابتة ولا تخص مستأجراً بعينه.
  • يعمل على أي هاتف أندرويد دون تنزيل من متجر التطبيقات.

أسئلة شائعة

ما الفرق بين تطبيق الويب التقدمي والتطبيق الأصلي في العمل بلا اتصال؟+

من ناحية القدرة على العمل بلا اتصال، الفرق صغير اليوم: كلاهما يخزّن محلياً ويزامن لاحقاً. الفرق العملي في التوزيع — تطبيق الويب التقدمي يُثبَّت من الرابط مباشرة دون متجر تطبيقات، وهو ما يهم كثيراً حين يكون فريقك الميداني على أجهزة متنوعة ولا تريد إدارة تحديثات المتجر.

كم من الوقت يمكن للتطبيق أن يعمل بلا اتصال؟+

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

هل تُفقد البيانات إذا أغلق العامل التطبيق قبل المزامنة؟+

لا، إن كانت العمليات مخزّنة في IndexedDB — فهي تبقى بعد إغلاق التطبيق وإعادة تشغيل الجهاز. البيانات تُفقد فقط إذا مسح المستخدم بيانات المتصفح يدوياً أو ألغى تثبيت التطبيق.

ماذا عن رفع الصور بلا اتصال؟+

الصور تُخزَّن محلياً كملفات ثنائية وتُرفع مع عمليتها عند عودة الشبكة. النقطة المهمة هي ضغط الصورة على الجهاز قبل التخزين — صور بحجم ١٢ ميغابايت في طابور من ثلاثين عملية ستستهلك مساحة الجهاز وتجعل المزامنة بطيئة على شبكة ضعيفة.

هل نحتاج فعلاً كل هذا إذا كانت مواقعنا داخل المدن؟+

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

جرّبها في وضع الطيران

أنشئ حساباً، افتح مقاول على هاتفك، فعّل وضع الطيران، وسجّل تقريراً يومياً. ثم أعد الاتصال وشاهده يتزامن.

ابدأ تجربة مجانيةاستعرض الميزات

اقرأ أيضاً

العمليات الميدانية22 يونيو 2026·9 دقائق قراءة

حضور العمال بـ GPS في مواقع البناء

كشف الحضور الورقي يُملأ عادة في نهاية الأسبوع من الذاكرة. الحضور الجغرافي يحوّله إلى سجل زمني بمكان وتوقيت — إن صُمِّم ليعمل في موقع بلا تغطية.

اقرأ المقال
إدارة المستندات6 يوليو 2026·10 دقائق قراءة

تقصير زمن الرد على طلبات المعلومات والمقدمات

طلب معلومات بلا رد يوقف بنداً كاملاً في الموقع. الفرق بين شركة تنتظر وشركة تدير الانتظار هو نظام تتبع للمهل والتصعيد.

اقرأ المقال
كل المقالات
muqawil · مقاول

إدارة الإنشاءات للوطن العربي، بالعربية والإنجليزية.

المنتج

  • جميع الميزات
  • كيف يعمل
  • الباقات
  • المدونة

الشركة

  • إنشاء حساب
  • تسجيل الدخول
  • تواصل
  • برنامج الإحالة

قانوني

  • الشروط والأحكام
  • سياسة الخصوصية
© 2026 مقاول. جميع الحقوق محفوظة.English