چند تا از راهنماهای خرید نرمافزار بازرسی میدانی در سال ۲۰۲۶ روی یک نکته مشترک تاکید دارن: بین «آفلاین واقعی» و «آفلاین دروغین» فرق زیادی هست. این فرق فقط یک بار خودش رو نشون میده - دقیقاً همون لحظهای که نباید.
مشکلی که تا دیر نشده کسی متوجهش نمیشه
آفلاین دروغین توی دمو کاملاً خوب به نظر میرسه. فرم پر میشه، فیلدها ذخیره میشن، اپ سریع جواب میده. مشکل دقیقاً موقع ارسال خودش رو نشون میده: رکورد برای رسیدن واقعی به سرور به اتصال زنده نیاز داره، پس یا بیصدا توی صف میمونه یا بدتر، بدون اطلاع به بازرس fail میشه. بازرس با این تصور که بازرسی ثبت شده از محل خارج میشه؛ در حالی که نشده - تا وقتی یکی توی ممیزی متوجه این خلأ بشه.
چیزی که واقعاً باید بدون آنتن کار کنه
آفلاین واقعی یعنی همهی مراحل کار - نه فقط فرم - بدون سیگنال کار کنن: ساختن بازرسی جدید، گرفتن عکس و GPS، جستجو و مراجعه به استاندارد مربوطه، بوکمارک کردن یک بند برای بعد، و sync خودکار همون لحظه که اتصال برگرده. Probe361 دقیقاً با همین منطق ساخته شده: یک service worker پوستهی اپ رو کش میکنه، و متن خودِ استانداردها (بندهای AWS، API، ASME) توی IndexedDB روی خودِ دستگاه ذخیره میشه - یعنی جستجوی تماممتن و پیدا کردن بند با گوشی روی حالت هواپیما هم کار میکنه، نه فقط یک «آخرین صفحهی دیدهشده»ی استاتیک.
سینک آفلاین در اپهای بازرسی دقیقاً یعنی چی؟
یعنی رکورد اول روی خودِ دستگاه نوشته میشه و بعد روی سرور. وقتی بازرس دکمهی ذخیره رو میزنه، بازرسی و عکسها و موقعیت GPS توی حافظهی محلی گوشی ذخیره میشن (توی وباپ یعنی IndexedDB)، بهعلاوهی یه ردیف توی صف ارسال که میگه «این هنوز باید فرستاده بشه». هیچچیز منتظر شبکه نمیمونه. وقتی اتصال برگشت، اپ صف رو یکییکی میفرسته و فقط وقتی سرور تأیید کرد رکورد رو «سینکشده» علامت میزنه.
بیشتر خرابیها از جزئیات همین چرخه میاد. هر رکورد باید یه شناسه داشته باشه که روی خودِ دستگاه ساخته شده، تا اگه وسط ارسال اتصال قطع شد و دوباره فرستاده شد، همون بازرسی بهروز بشه نه اینکه یه نسخهی دوم ساخته بشه. عکسها خیلی بزرگتر از دادهی فرمان و زیاد نصفه میمونن، پس باید جدا آپلود و جدا تکرار بشن. توکن ورود ممکنه وقتی گوشی آفلاینه منقضی بشه و اپ باید تمدیدش کنه و ادامه بده، نه اینکه صف رو دور بریزه. اگه دو نفر یه رکورد رو ویرایش کنن، یکی باید تصمیم بگیره کدوم نسخه بمونه؛ قاعدهی «آخرین نوشتن برندهست» بیصدا کار یه نفر رو پاک میکنه. مرورگرها هم ممکنه موقع کمبود فضا حافظهی سایت رو پاک کنن، مگه اینکه اپ حافظهی ماندگار (persistent storage) درخواست کرده باشه. و بازرس باید برای هر رکورد ببینه واقعاً به سرور رسیده یا نه.
دسترسی فارسی خودش یک مسئلهی آفلاین جداست
جایگزین واقعیِ بیشتر بازرسها یک اپ دیگه نیست - خودِ پورتالهای رسمی استاندارد (IEC، BSI، ISO) هستن که پورتالهای وب انگلیسیزبان بدون هیچ حالت آفلاینیان. برای یک بازرس جوشکاری فارسیزبان توی سایتی بدون آنتن، این یک مانع روزمرهی بزرگتره - چیزی که خیلی از مقایسههای فروشندهها حتی وقتی از «پشتیبانی آفلاین» حرف میزنن بهش اشاره نمیکنن.
هیچکدوم از اینها انتقاد به ابزارهای فرم-کششونده نیست - اونها برای خیلی از کارهای میدانی مشکل واقعی رو حل میکنن. ولی مشخصاً برای مراجعه به استاندارد، جایی که خودِ محتوا (نه فقط یک فرم) باید با صفر اتصال قابلجستجو و درست باشه، فرق بین کشکردنِ یک صفحه و ارسالِ واقعیِ خودِ داده، تفاوتِ اصلیه.
دسترسی آفلاین وقتی بازرس خودش هزینهی ابزار را میدهد اهمیت بیشتری دارد، همانطور که در چرا ابزار مرجعی که شخصاً پولش را میدهی باید هر بار تمدیدش را به دست بیاورد توضیح دادهایم.
پرسشهای متداول
آفلاین ساختگی در اپهای بازرسی یعنی چه؟
اپی که فرم را بدون آنتن پر و ذخیره میکند اما برای رسیدن رکورد به سرور به اتصال زنده نیاز دارد. هنگام ارسال، رکورد بیصدا در صف میماند یا بدون اطلاع بازرس شکست میخورد و بازرس فکر میکند بازرسی ثبت شده است. این شکاف اغلب فقط هنگام ممیزی آشکار میشود.
همگامسازی آفلاین در اپهای بازرسی واقعاً یعنی چه؟
دستگاه اولین جایی است که رکورد نوشته میشود و سرور دومین جا. با زدن ذخیره، بازرسی، عکسها و موقعیت GPS در حافظهی محلی گوشی همراه با یک ورودی در صندوق ارسال ثبت میشوند. وقتی اتصال برمیگردد، اپ صندوق ارسال را پردازش میکند و رکورد را فقط پس از تأیید سرور همگامشده علامت میزند.
چرا اپهای بازرسی آفلاین رکورد را گم یا تکراری میکنند؟
معمولاً به خاطر جزئیات اطراف چرخهی همگامسازی. بدون شناسهای که روی دستگاه ساخته شود، تلاش دوباره ممکن است بازرسی دوم بسازد. عکسهای حجیم نیمهکاره شکست میخورند و تلاش جداگانه لازم دارند. توکن ورود در حالت آفلاین منقضی میشود. قاعدهی آخرین نوشتن برنده است کار یک نفر را حذف میکند و مرورگر ممکن است حافظه را پاک کند.



