چند هفته پیش در مقاله ای با عنوان “Offline Web Applications چیست؟” به معرفی و بررسی آن پرداختیم. در این مقاله که به قلم امین خادمیان و برای انتشار در بلاگسیما تهیه شده است نحوه اجرا و استفاده ازاین تکنیک را به شما آموزش خواهیم داد.
مراحل راه اندازی نسخه آفلاین در سایت
1- ساخت فایل cache.manifest
اولین قدم برای استفاده از Offline Web Apps ساختن فایل cach.manifest می باشد. برخلاف اسم سختی که دارد دارای ساختاری بسیار ساده بوده و تنها کافی است که دستوراتی را طبق اصول خاصی به این فایل بیافزایید. یک نمونه ساده از این فایل را ببینید :
خط اول این فایل باید عبارت ‘ CACHE: ‘ باشد. بعد از این خط باید نام و مسیر فایل های مد نظر شما که مایلید در مخزن مرورگر قرار گیرد را وارد کنید. با این کار، وقتی کاربر برای اولین بار وارد صفحه ای که دارای فایل cache.manifest است، می شود مرورگر این فایل ها و اطلاعات را درون مخزن خود ذخیره میکند تا در بازدیدهای بعدی به جای درخواست دوباره از سرور از همین اطلاعات استفاده کند. بعد از لیست کردن اطلاعاتی که دوست داریم کاربر هنگام آفلاین بودن مشاهده کند نوبت به فایل هایی می رسد که قصد نداریم آن ها را درون مخزن مرورگر قرار دهیم.
این بخش می تواند شامل بخش هایی از سایت باشد که فقط در صورت آنلاین بودن کاربر، کاربرد دارند. فرض کنید که اسکریپتی درون سایت شماست که 10 توییت آخر شما را در سایتتان نمایش می دهد، به نظر می رسد که این امکان فقط در صورت آنلاین بودن کار می کند پس منطقی نیست که این بخش در مخزن قرار بگیرد. این اطلاعات را شما باید بعد از عبارت ‘ NETWORK: ‘ وارد کنید. اطلاعاتی که در این بخش وارد می کنید همیشه زمانی که کاربر آنلاین باشد از سرور درخواست می شود و هیچ گاه درون مخزن قرار نمی گیرد. نمونه کد این بخش :
NETWORK:
lasttentweets.php
برخلاف بخش ‘CACHE’ که ما مجبوریم هر فایلی که مایلیم درون مخزن قرار گیرد را ذکر کنیم، در بخش ‘NETWORK’ می توانید از میانبر استفاده کنید. این میانبر کارکتر * است. با قرار دادن این کاراکتر در بخش ‘NETWORK’ مرورگر تمامی فایل ها به جز فایل ها و اطلاعات بخش ‘CACHE’ را فقط در زمان آنلاین بودن فرا می خواند (مانند اولین نمونه کدی که ذکر شد)
2- تعیین نوع محتوا بر روی سرور
قدم بعدی برای استفاده و اجرای Offline Web Apps این است که مطمئن شوید سرور شما فایل manifest را با محتوای مناسب برای کاربران ارسال می کند. برای انجام این کار تنها کافیست که نوع اطلاعات مربوط به این فایل را در تنظیمات سرور خود وارد کنید. اگر از Apache Web Server استفاده می کنید، کافیست که این خط را به فایل ‘htaccess.’ خود اضافه کنید :
AddType text/cache-manifest.manifest
اگر از وب سروری غیر از Apache استفاده می کنید می توانید این خط را به فایل های مشابه ‘htaccess.’ در سرور خود اضافه کنید. اگر در این زمینه مشکلی برای شما پیش آمد می توانید با پشتیبانی سرور خود تماس بگیرید، و یا مقاله تنظیم بهینه MIME type ها در سرور “ properly configuring server mime type ” را بخوانید. این مقاله در بخش توسعه دهندگان موزیلا منتشر شده است.
3- ارجاع دادن به فایل manifest در کد html
آخرین مرحله برای پیاده سازی تکنولوژی Offline Web Apps، ارجاع دادن به فایل manifest در سند html است. برای این کار تنها کافیست که خصیصه ی manifest را به برچسب html صفحه اضافه کنید :
<! doctype html>
<html manifest=”/cache.manifest” >
خوب کار تمام است ! و سایت برای دسترسی آفلاین کاربران آماده شده است با توجه به این که فایل هایی که درون مخزن مرورگر هستند دوباره از سرور فراخوانی نمی شوند، از این به بعد صفحات سایت شما با سرعت بیشتری بارگذاری شده و همچنین پهنای باند مصرفی شما کاهش می یابد. با این که کار تمام است اما هنوز جای بحث بیشتر وجود دارد، در ادامه به بررسی چند نکته و ترفند کاربردی در Offline Web Apps می پردازیم.
مشکلات احتمالی در نسخه آفلاین سایت
تمامی آدرس های سایت شما ( تصاویر، استایل ها و… ) باید در یکی از بخش های فایل manifest وجود داشته باشد در غیر این صورت آدرس های که به آن ها اشاره ای نشده باشد بارگذاری نمی شوند حتی اگر کاربر آنلاین باشد. برای جلوگیری از بروز این مشکل پیشنهاد می کنم که از کارکتر میانبر * در بخش ‘ NETWORK ‘ استفاده کنید.
تمامی صفحات html سایت شما باید دارای خصیصه manifest در برچسب html خود باشند. مطمئن شوید که تمامی صفحات شما دارای این خصیصه هستند در غیر این صورت ممکن است صفحات سایت شما درون مخزن قرار نگیرد. تنها داشتن یک فایل manifest برای یک سایت کافی است اما تمامی صفحات باید دارای کد ذکر شده در قدم سوم باشند.
با توجه به این که حجم مخزن مرورگر محدود است بنابراین سایت هایی که دارای اطلاعاتی سنگین مانند mp3 و یا mp4 هستند بهتر است که این فایل ها را درون مخزن قرار ندهند چون تمام فضای مخزن مرورگر را پر می کنند، علاوه بر این در برخی نسخه های مرورگر سافاری به علت مشکل در برنامه نویسی، قادر به بارگذاری این فایل ها (mp3،mp4) از مخزن نیست. برای حل این مشکل بهتر است آدرس فایل های حجیم را در بخش ‘NETWORK’ وارد کنید.
بخش Fallback
بخش Fallback ویژگی دیگریست که می توانید از آن در فایل manifest استفاده کنید ( استفاده از این بخش اختیاری است و اجباری برای استفاده از آن وجود ندارد! ). کار بخش Fallback آن است که اگر هر فایل یا صفحه ای به دلیلی بارگذاری نشد و یا درون مخزن قرار نداشت، چه فایلی جایگزین آن شود؟ می توانید از این بخش برای فایل های ویدئویی سایت خود که درون مخزن قرار ندارند استفاده کنید.
داده های درون این بخش دارای دو ورودی هستند، ورودی اول مربوط به فایل یا صفحه ای است که بارگذاری آن با مشکل مواجه شده است می باشد و ورودی دوم مربوط به اطلاعاتی است که می خواهید به عنوان جایگزین به جای ورودی اول به نمایش در آید. به عنوان مثال : شما چند فایل ویدئویی در پوشه media دارید و می خواهید تصویری را در صورت آفلاین بودن کاربر جایگزین فایل های ویدئویی کنید، برای این کار باید کدی همانند کد زیر در فایل manifest خود وارد کنید :
FALLBACK: media/ images/offline.png
همچنین شما می توانید یک صفحه اختصاصی برای زمانی که هیچ کدام از فایل های سایت شما بارگذاری نشد بسازید و آن را به بخش Fallback اضافه کنید. برای این کار باید کدی همانند زیر داشته باشید :
FALLBACK: / /offline.html
در این کد اولین ‘ / ‘ به معنای تمامی آدرس های سایت است.
به روز کردن محتویات مخزن
یکی از مشکلات رایج در تکنولوژی Offline Web Apps به روز کردن محتوای آن است. شاید حل این موضوع به نظر شما ساده به نظر برسد اما باید بگویم که تنها زمانی سرور تصور می کند، فایل manifest تغییر کرده است و باید به روز شود که دقیقا خود فایل manifest را ویرایش کرده باشید. فرض کنید که در حال توسعه سایت خود هستید، اگر تغییری در محتوای فایل های خود ( css، html،… ) بدهید چون عملا فایل manifest را تغییر نداده اید سرور هم تغییری در درون اطلاعات مخزن ایجاد نمی کند شاید به همین دلیل تغییراتی را که انجام داده اید در مرورگر اعمال نشود.
برای حل این مشکل پیشنهاد می کنم که نسخه فایل manifest را درون آن به صورت کامنت قرار دهید، با این کار زمانی که شما تغییراتی را ایجاد کنید فقط کافیست که نسخه درون این فایل را تغییر دهید تا سرور با این فرض، اطلاعات درون مخزن را به روز کند. نحوه وارد کردن کامنت به این صورت است :
CACHE MANIFEST # version 0.1 CACHE: index.html . .
فقط باید توجه داشته باشید که خط اول فایل manifest حتما باید عبارت ‘CACHE MANIFEST’ باشد و نباید کامنت را در خط اول وارد کنید.
در مخزن قرار گرفتن فایل cach.manifest
شاید مهمترین مشکل Offline Web Apps همین قرار گرفتن فایل manifest در مخزن باشد، به نظر شما با وجود این چه اتفاقی خواهد افتاد؟ اگر تنظیمات سرور شما به این صورت باشد که اجازه دهد، فایل manifest درون مخزن قرار گیرد (اغلب این گونه است و فایل های استاتیک درون مخزن می روند) مرورگر نیز به جای درخواست فایل از سرور آن را از درون مخزن می خواند.
درنتیجه این عمل، حتی اگر فایل های روی سرور شما تغییر کرده باشد مرورگر چیزی را دریافت نمی کند، زیرا تصور می کند که هیچ فایلی تغییر نکرده است. اگر در چنین شرایطی قرار گرفتید بهتر است مخزن برنامه ی تحت وب و مخزن مرورگر را خالی کنید. اگر مشکلتان حل نشد بهترین راه این است که این کد را به فایل.htaccess (در وب سرور آپاچی) خود اضافه کنید:
ExpiresActive On ExpiresDefault “access”
این کد به سرور می گوید، باید فایل cache.manifest را همیشه تاریخ مصرف گذشته اعلام کنید که این باعث می شود همیشه این فایل از سرور درخواست شود و نه مخزن مرورگر. تمامی مراحلی که ذکر شد را انجام دهید، سایت خودتان را در حالت آفلاین تست کنید و از درستی کارکرد آن مطمئن شوید. در صورت بروز مشکل و یا نیاز به راهنمایی های بیشتر میتوانید در بخش نظرات همین مقاله سوالات خود را مطرح کنید.
آموزش ارائه شده در این مقاله توسط امین خادمیان برای انتشار در بلاگسیما ارائه شده که درباره خودش اینچنین گفته:
دوساله در زمینه برنامه نویسی تحت وب تجربه دارم و در همین زمینه هم فعالیت می کنم , تمامی نمونه کارهامو با css3 , html5 انجام میدم و تا حد امکان اصول سئو و قوانین کنسرسیوم جهانی وب رو اولویت قرار میدم.
برای مشاهده نمونه کارها یا مطالعه سایر مقالات او میتوانید به سایت شخصی امین خادمیان مراجعه کنید.
اگر برای سئو هزینه میکنید، طبیعی است که بخواهید بدانید این هزینه چه زمانی به درآمد تبدیل میشود. بسیاری از کسبوکارها تنها افزایش بازدید سایت را معیار موفقیت میدانند، در حالی که آنچه واقعا اهمیت دارد، تاثیر سئو بر فروش، جذب مشتری و رشد برند است. بازگشت سرمایه در سئو (SEO ROI) دقیقا همین موضوع […]
اگر قرار باشد تنها یک کار را قبل از تولید محتوا یا شروع سئو انجام دهید، آن کار بدون شک کیورد ریسرچ است. بسیاری از سایتها ساعتها برای تولید مقاله، طراحی صفحات خدمات و انتشار محتوا زمان صرف میکنند، اما چون نمیدانند کاربران دقیقا چه عباراتی را جستجو میکنند، هیچ سهمی از نتایج گوگل به […]
با ظهور هوش مصنوعی شیوه دسترسی ما به اطلاعات رسما تغییر کرده است! ابزارهایی مانند Gemeni و ChatGPT به جای اینکه همانند گوگل فهرستی از سایتها را در اختیار کاربر قرار دهند، پاسخ سوال کاربر را مستقیما در اختیار او میگذارند. همین مسئله باعث شده اغلب افراد تصور کنند دوران گوگل و موتورهای جستجو به […]
پاسخگوی سوالات شما هستیم
سوالات شما توسط کارشناسان وبسیما پاسخ داده میشود.
نام و نام خانوادگی
آدرس ایمیل
تلفن همراه
متن نظر یا سوال ...
ارسال
lehsa
پاسخ
4 Sep 2014
سلام من می خواهم اول یک سایت رایگان وافلاین داشته باشم. واگر دیدم می توانم مدیریت کنم و غنی نمایم سپس آنلاین نمایم. درمرحله ی اول ازکجا باید سایت رایگان افلاین تهیه کنم .ممنون اگر ایمیل کنید برام
وب سیما
پاسخ
6 Sep 2014
سلام، درست متوجه سوال شما نشدم. باید در ابتدا یک نرم افزار شبیه ساز هاست و سرور نصب کنید و بعد مثلا یک وردپرس روش راه اندازی کنید.
با تکمیل فرم زیر، کارشناسان ما در سریعترین زمان ممکن با شما تماس میگیرند.
درخواست شما با موفقیت ثبت شد!
کارشناسان ما در سریعترین زمان ممکن با شما تماس میگیرند.
اطلاعات تکمیلی
لطفاً جزئیات بیشتری از درخواست خود را با ما به اشتراک بگذارید. این اطلاعات، به ما کمک میکند تا بهترین مشاوره را به شما ارائه دهیم.
اطلاعات شما با موفقیت تکمیل شد!
کارشناسان ما در سریعترین زمان ممکن با شما تماس میگیرند.
پس از ارسال درخواست مشاوره، چه زمانی با من تماس گرفته میشود؟
پس از ثبت درخواست، تیم ما ظرف ۲۴ ساعت کاری اطلاعات شما را بررسی کرده و با شما تماس خواهد گرفت.
آیا امکان برگزاری مشاوره بهصورت آنلاین یا تلفنی وجود دارد؟
بله، بسته به شرایط شما، امکان مشاوره آنلاین، تلفنی یا حضوری وجود دارد. تیم ما هنگام هماهنگی جلسه، گزینههای مناسب را به شما پیشنهاد میدهد.
آیا پس از ثبت درخواست مشاوره، میتوانم اطلاعات خود را ویرایش کنم؟
بله، در صورتی که نیاز به اصلاح یا تغییر اطلاعات ثبتشده داشته باشید، میتوانید با تیم پشتیبانی ما از طریق تماس تلفنی یا ایمیل در ارتباط باشید تا اطلاعات شما بهروزرسانی شود.
پس از ارسال درخواست مشاوره، چه زمانی با من تماس گرفته میشود؟
پس از ثبت درخواست، تیم ما ظرف ۲۴ ساعت کاری اطلاعات شما را بررسی کرده و با شما تماس خواهد گرفت.
آیا امکان برگزاری مشاوره بهصورت آنلاین یا تلفنی وجود دارد؟
بله، بسته به شرایط شما، امکان مشاوره آنلاین، تلفنی یا حضوری وجود دارد. تیم ما هنگام هماهنگی جلسه، گزینههای مناسب را به شما پیشنهاد میدهد.
آیا پس از ثبت درخواست مشاوره، میتوانم اطلاعات خود را ویرایش کنم؟
بله، در صورتی که نیاز به اصلاح یا تغییر اطلاعات ثبتشده داشته باشید، میتوانید با تیم پشتیبانی ما از طریق تماس تلفنی یا ایمیل در ارتباط باشید تا اطلاعات شما بهروزرسانی شود.
سلام من می خواهم اول یک سایت رایگان وافلاین داشته باشم. واگر دیدم می توانم مدیریت کنم و غنی نمایم سپس آنلاین نمایم. درمرحله ی اول ازکجا باید سایت رایگان افلاین تهیه کنم .ممنون اگر ایمیل کنید برام
سلام، درست متوجه سوال شما نشدم. باید در ابتدا یک نرم افزار شبیه ساز هاست و سرور نصب کنید و بعد مثلا یک وردپرس روش راه اندازی کنید.
ممنون بابته این مطلبه خوبتون
چه مقاله ها و آموزشهای خوبی میذارید
دمتون گرم
نظر لطف شماست. مرسی از کامنت انرژی بخش
ممنون عالی بود
خواهش میکنم دست آقای خادمیان درد نکنه