Çevrim Dışı Çalışan ve Daha Sonra Güvenilir Şekilde Eşitlenen Bir Günlük Sistemi Nasıl Kurulur?
İnternet kesildiğinde de yazmaya devam etmek istiyorsanız, girdileri cihazınıza kaydeden bir günlük düzeni seçin ve önemli yazılarınızı emanet etmeden önce nasıl davrandığını doğrulayın. Yalnızca bir bulut hesabı veya "çevrim dışı" etiketi tek başına kanıt değildir. Yazabileceğinizi, yeniden açabileceğinizi, tekrar bağlanabileceğinizi, olası eşitleme çakışmalarını çözebileceğinizi ve bir kopyayı dışa aktarabileceğinizi doğrulamak için aşağıdaki kontrol listesini ve geri alınabilir uçak modu denemesini kullanın.
Günlük girişinizin nereye kaydedileceğine karar verin
"Çevrim dışı günlük" üç farklı anlama gelebilir. Buradaki kilit soru, bağlantı geri gelmeden önce yeni bir girişin cihazınızda gerçekten depolanıp depolanmadığıdır.
Yerel uygulama dosyaları: Uygulama yerel kaydetmeyi destekliyorsa, girdiler cihazda dosya olarak kaydedilir.. Dosyaların nerede bulunduğu, uygulamanın bunları çevrim dışıyken yeniden açıp açamayacağı ve bunları nasıl dışa aktarabileceğiniz veya kopyalayabileceğiniz.
Çevrim dışı çalışabilen web uygulaması: Uygulama, verileri tarayıcıda depolayabilir ve açılıp kullanılması için gereken parçaları önbelleğe alabilir.. Yalnızca arayüzün değil günlüğün kendisinin çevrim dışı çalışıp çalışmadığı, düzenlemelerin eşitleme için kuyruğa alınıp alınmadığı ve tarayıcı verileri silindiğinde ne olduğu.
Yalnızca bulut tabanlı uygulama: Uygulama, girdileri yüklemek veya kaydetmek için bir ağ bağlantısına ihtiyaç duyar.. Kendi belgeleri ve testleriniz aksini göstermedikçe, çevrim dışı yazmanın kullanılamaz olduğunu varsayın.
Bu kategoriler depolama davranışını tanımlar, uygulamaların bir sıralaması değildir. Bir masaüstü uygulaması hem yerel dosyaları hem de bulut eşitlemesini kullanabilir; bir web uygulaması ise günlük girdilerini yerel olarak kaydetmeden arayüzünü önbelleğe alabilir. Sağlayıcıya girdilerin nasıl depolandığını ve eşitlendiğini sorun; asıl cihazınızı, tarayıcınızı ve hesabınızı test edin.
Bir düzen seçmeden önce bu kontrol listesini kullanın
Şu soruları net bir şekilde yanıtlayabildiğinizde, bir günlük sistemi çevrim dışı yazmak için uygundur:
**Cihazın bağlantısı kesilmişken yeni bir giriş oluşturabilir miyim?** Daha önce indirilmiş girdileri görüntüleyebilmek ile yeni bir girdi oluşturup kaydedebilmek farklı şeylerdir.
**Uygulamayı kapatıp yeniden açtığımda giriş yerinde duruyor mu?** Kaydedildi durumunu veya başka bir onayı arayın, ardından girişi çevrim dışıyken yeniden açarak doğrulayın.
**Yeniden bağlandığımda ne oluyor?** Uygulama otomatik olarak mı eşitleniyor, bir kuyruk mu gösteriyor, yoksa bir işlem yapmanız mı gerekiyor? Girişin hesaba veya sunucuya ulaşıp ulaşmadığını anlayabiliyor musunuz?
**Çakışan düzenlemeler nasıl ele alınıyor?** Aynı girişi eşitlenmeden önce iki cihazda düzenlerseniz uygulama her iki sürümü de koruyor mu, bir çakışma kopyası mı oluşturuyor, sürüm geçmişini mi gösteriyor, yoksa bir düzenlemenin diğerinin üzerine yazılmasına mı izin veriyor? Uygulamanın kendi açıklamasını kontrol edin; eşitleme davranışı hizmete göre değişir.
**Bağımsız bir kopya alabilir miyim?** Bir dışa aktarma veya dosya kopyalama seçeneği bulun ve neleri içerdiğini öğrenin. Günlük uygulamasının dışında açabileceğiniz bir kopya, içeriğin okunabilir olup olmadığını incelemenin bir yolunu sunar.
**Yerel kopyayı ne silebilir?** Tarayıcı verilerini temizlemeyi, uygulamayı kaldırmayı veya sıfırlamayı, cihazı kaybetmeyi ya da cihaz depolama alanının tükenmesini göz önünde bulundurun. Çevrim dışı bir giriş yine de bu durumlara karşı savunmasız olabilir.
Tarayıcı depolaması özel bir dikkat gerektirir. MDN, tarayıcı verilerinin genellikle web sitesi kaynağı (origin) başına depolandığını ve tarayıcı tarafından yönetilen depolamanın varsayılan olarak "en iyi çaba" (best-effort) esasına dayandığını açıklar: depolama alanı baskısı altında bu veriler tahliye edilebilir ve kullanıcılar tarayıcı ayarlarından bunları silebilir. Bir site kalıcı depolama talep edebilir, ancak bu talep tarayıcıdaki kopyayı bağımsız bir yedekle eşdeğer kılmaz. Bkz. [MDN’in depolama kotaları ve tahliye rehberi](https://developer.mozilla.org/en-US/docs/Web/API/Storage_API/Storage_quotas_and_eviction_criteria). Aynı rehbere göre gizli gözatma oturumlarında depolanan veriler, gizli oturum sona erdiğinde genellikle silinir.
Geri alınabilir bir uçak modu denemesi yapın
Bunu önce kaybetmeyi göze alamayacağınız bir girişle değil, gözden çıkarabileceğiniz bir test girişiyle deneyin. Bu deneme, yazma aşamasından ayrı bir kopya almaya kadar giden tüm süreci kontrol eder.
**Bağlantı varken hazırlanın.** Günlüğü açın, gerekirse oturum açın ve çevrim dışı erişimi etkinleştirmek için uygulamanın talimatlarını kontrol edin. Bazı hizmetler, dosyaları veya uygulama bileşenlerini önceden çevrim dışı kullanıma hazır hale getirmenizi gerektirir. Cihazda boş alan olduğunu doğrulayın. Google Drive'ın belgeleri, ürüne özel hazırlığa dair faydalı bir örnek sunar: web üzerinden çevrim dışı erişim, bağlantı varken kurulum yapmayı, desteklenen bir tarayıcı ile uzantıyı ve dosyaları çevrim dışı kullanılabilir olarak işaretlemeyi gerektirir. Bu gereksinimler genel olarak günlük uygulamaları için değil, Google Drive için geçerlidir; bkz. [Google Drive’ın çevrim dışı talimatları](https://support.google.com/drive/answer/2375012?hl=en).
**Bağlantıyı kasıtlı olarak kesin.** Uçak modunu açın; Wi-Fi ile mobil verinin kapalı olduğunu doğrulayın. Bu, cihazın sessizce başka bir ağ üzerinden bağlı kalmasıyla oluşacak yanıltıcı bir testi önler.
**Bir test girişi oluşturun ve düzenleyin.** Birkaç satır yazın, uygulamanın bir kaydetme komutu varsa kaydedin ve küçük bir düzenleme daha yapın. Varsa çevrim dışı göstergesini veya uyarısını not edin. Uygulama girişi oluşturmayı veya kaydetmeyi reddederse, yapılandırıldığı haliyle bu çevrim dışı yazma görevini karşılamıyor demektir.
**Kapatın ve yeniden açın.** Bağlantı hâlâ kesikken uygulamayı veya sekmeyi kapatın, yeniden açın ve test girişini bulun. Hem orijinal metnin hem de düzenlemenizin mevcut olduğunu doğrulayın. Çevrim dışı açılan ancak yeniden açıldığında girişi kaybeden bir sayfa testi geçememiştir.
**Yeniden bağlanın ve sonucu izleyin.** Bağlantıyı tekrar açın. Eşitlemeyi bekleyin veya uygulamanın belgelerinde belirtilen eşitleme eylemini kullanın. Girişi uygulamanın eşitleme durumundan veya uygulanabilirse oturum açılmış başka bir cihazdan kontrol edin. Yeniden bağlanmanın yüklemenin tamamlandığı anlamına geldiğini varsaymayın.
**Çakışma davranışını dikkatle kontrol edin.** Eşzamanlı düzenlemelerin nasıl ele alındığını bilmeniz gerekiyorsa, gözden çıkarılabilecek bir giriş kullanın: bir cihazda çevrim dışıyken bir sürüm, başka bir cihazda farklı bir sürüm oluşturun, ardından yeniden bağlanın. Sonucu okuyun ve neyin korunduğunu onaylayın. Gerçek bir günlük girişinde kasıtlı olarak çakışan düzenlemeler oluşturmaktan kaçının.
**Bir kopyayı dışa aktarın.** Uygulamanın dışa aktarma veya indirme özelliğini kullanın ya da yerel dosyayı belgelenen yöntemini kullanarak kopyalayın. Kopyayı açın ve test metninin orada olduğunu doğrulayın. Dışa aktarma mevcut değilse bu kısıtlamayı kaydedin ve başka bir bağımsız kopyalama yönteminin ihtiyaçlarınıza uygun olup olmadığına karar verin.
Testin başarılı olması, söz konusu uygulamanın, cihazın ve yapılandırmanın bu adımları test ettiğiniz sırada desteklediğini gösterir. Gelecekteki her girişin eşitleneceğini veya her cihaz ile tarayıcının aynı şekilde davranacağını kanıtlamaz. Büyük uygulama değişikliklerinden sonra veya cihaz, tarayıcı ya da depolama ayarlarını değiştirdiğinizde kısa bir testi tekrarlayın.
Çevrim dışı erişimin neleri koruyup neleri korumadığını anlayın
Çevrim dışı erişim, uygulamanın desteklediği koşullar altında canlı bir bağlantı olmadan çalışabileceğiniz anlamına gelir. Kendi başına bir yedek oluşturmaz, tarayıcı veya cihaz verilerinin kalıcı olacağını garanti etmez ya da sunucunun girişi aldığını kanıtlamaz. Dışa aktarılan bir kopya, yalnızca onu gerçekten oluşturursanız ve açabilirseniz işe yarar; aynı cihazda tutulan tek bir kopya yine o cihazla birlikte kaybolabilir.
Tarayıcı tabanlı günlükler için **önbelleğe alınmış uygulama dosyaları** ile **kaydedilmiş günlük verileri** arasındaki farkı ayırt edin. MDN, Service Worker teknolojisini bir web uygulamasının sayfaları çevrim dışı yükleyebilmesi için kaynakları önbelleğe alma yöntemlerinden biri olarak tanımlar. Bu durum tek başına uygulamanın yeni girdileri yerel olarak kaydettiğini veya daha sonra eşitlediğini göstermez. Bunu günlüğün kendi depolama ve eşitleme tasarımı belirler. Bkz. [MDN’in çevrim dışı web uygulamaları rehberi](https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Guides/Offline_and_background_operation). Benzer şekilde, tarayıcı arka plan eşitleme (background-sync) özelliklerinin sınırları vardır ve desteklenme durumları değişiklik gösterir; bir uygulamanın bunları kullanması, sadece bir web uygulaması olmasından yola çıkılarak varsayılacak bir şey değildir. [MDN’in Background Synchronization API referansı](https://developer.mozilla.org/en-US/docs/Web/API/Background_Synchronization_API), API'yi ve sınırlı kullanılabilirliğini açıklar.
Yazma rutininize uygun düzeni seçin
Genellikle bağlantının olmadığı yerlerde yazıyorsanız uçak modu denemesini geçen ve eşitleme durumunu anlaşılır kılan bir sisteme öncelik verin. Temel olarak önceden kaydedilmiş girdilere ara sıra erişmeniz gerekiyorsa, bu girdilerin önceden çevrim dışı kullanıma hazır olduğunu doğrulayın. Yeni yazıların cihaz kaybından etkilenmemesini istiyorsanız, çevrim dışı erişimin yanı sıra ayrı bir dışa aktarma veya yedekleme rutini planlayın.
Kararı pratik tutun: çevrim dışı bir test girişi yazın, yeniden açın, tekrar bağlanın, eşitleme ve çakışma davranışını inceleyin, ardından bir kopyayı dışa aktarıp açın. Herhangi bir adım belirsizse, günlüğünüz için bu düzene güvenmeden önce uygulama sağlayıcısına yerel olarak nelerin depolandığını ve düzenlemelerin nasıl bağdaştırıldığını sorun.
