Firefox'ta Ctrl + S kullanarak bir web sayfasını kaydetmek, tarayıcının siteyi ikinci kez yüklemesini sağlar mı?


58

Firefox'ta Ctrl+ ile çevrimdışı okumak için bir web sitesini kaydederken S, web sayfasının yüklü olmasına rağmen indirme işleminin birkaç saniye sürdüğünü fark ettim.

Web sayfasını böyle kaydetmenin Firefox'un tüm içeriği (HTML, resimler, JavaScript, CSS vb.) İkinci bir kez mi getireceğini mi yoksa önbelleğe önceden yüklenmiş dosyalardan mı alacağını merak ediyorum.


Hatırladığım kadarıyla, eski firefox sayfayı geri yükledi. Cevaplar mevcut firefox içindir. Bazı yıllardan beri öyle.
kullanıcı259412

"İndirme işlemi" dediğiniz şeyi netleştirebilir misiniz? Bellekteki kaynaklar ağdan yeniden indirilmemesine rağmen, tarayıcının hala tüm verileri bir klasöre + bağlantıları değiştirmeye vb. Aktarmak için yapması gereken şeyler vardır. Ayrıca, depolama diski duraklatılmışsa, Bir süre sadece uyanmak için yazabilmemiz için. Ama eğer Kütüphane> İndirilenler panelinden zaman alıyor ve 1.2Mbps gibi bir şey gösteriyorsanız, o zaman bu regresyon ile ilgili olabilir, bir hata olarak
görmediler

4
Diğer kullanıcılar bunu zaten doğru bir şekilde cevaplamış olsalar da, yazılım geliştiricileri tarafından bir davranış garantisi sağlanmadığı sürece, böyle bir davranışı herhangi bir yazılımda kataloglamanın sık sık boşuna bir çaba olabileceğini unutmayın. Bu nedenle doğru olarak işaretlenmiş herhangi bir cevap, gelecek ve geçmiş versiyonlar hakkında geniş bir varsayım yapmak yerine, test edildiği versiyona işaret etmelidir. En iyi cevabın zaten bu endişeyi giderdiği iyi bir şey. Biliyorum; kusur arama.
Adnan Y,

Her ne kadar bu görünse de, her ne kadar bir "WTF" olsa da, gerçeklik bunun sadece Firefox ile değil, on yıl kadar önce tamamen normal olduğunu söylüyor. Bana nedenini sorma, hiç mantıklı gelmiyor.
Damon,

Yanıtlar:


68

Hayır, ikinci bir isteği tetiklemez.

İstekleri kaydetmek için basit bir HTTP sunucusu çalıştırarak test ettim. Sunucu, web sitesini kaydederken ikinci bir istek almadı.

  • Şununla test edildi: Ubuntu 18.04'te Firefox 61.0.1 (64-Bit)
  • Sunucu: python 2.7.15 SimpleHTTPServer modülü ( python -m SimpleHTTPServer 7070)

Düzenle:

Yorum yapanlar, sunucunun "önbellek yok" başlıkları gönderip göndermediğini farklı davranışlar hakkında sordular. İle test ettim Pragma: No-Cacheve Cache-Control: No-Cachesonuç aynı kalıyor.

Testi yaparken kullandığım kod ( bu cevabı kullanarak ):

#!/usr/bin/env python
import SimpleHTTPServer

class MyHTTPRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
    def end_headers(self):
        self.send_my_headers()

        SimpleHTTPServer.SimpleHTTPRequestHandler.end_headers(self)

    def send_my_headers(self):
        self.send_header("Pragma", "No-Cache")
        self.send_header("Cache-Control", "No-Cache")


if __name__ == '__main__':
    SimpleHTTPServer.test(HandlerClass=MyHTTPRequestHandler)

11

Hayır değil.

Bilgisayarımın İnternet bağlantısını keserek ve daha önce yüklü bir web sayfasını kaydederek, kodsuz olarak test ettim.

İşe yaradı. Aynı testi kendiniz de yapabilirsiniz.


Bilgisayar çevrimiçi veya çevrimdışıysa davranışın farklı olabileceği kabul edilir, ancak mevcut en iyi yanıt daha ayrıntılı bir test gösterir. Sadece basit bir test yapmanın hala değerli olduğunu düşünüyorum .


11
Pek çok Expires, Cache-control, Pragma ve muhtemelen başka başlıklar kombinasyonu var, "bu durumda değil" kesinlikle "asla" anlamına gelmiyor. Kaynak koduna bakmadan hiçbir şeye bahis yapmam.
Guntram Blohm

5
@GuntramBlohm, kesinlikle doğru. Basit bir test Öte yandan, başarısız, o zaman kesin Ctrl-S olmayacak sonucuna varabiliriz hep o olsalar bile, sunucuya ek bir istek göndererek olmadan işe bazen bunu. Yani basit test hala bir değere sahip; Başka kimsenin bahsetmediğine şaşırdım, öyleyse yaptım.
Joker,

8

Bir web sayfasını ( ctrls) kaydetmek , Firefox'un tüm içeriği ikinci kez almasına neden olur mu?

Bu, Firefox'un geliştirici araçları kullanılarak kolayca test edilir .

  • Araçları açın ve "Ağ" sekmesine tıklayın.

  • Sayfayı kaydet

Ekstra ağ trafiği olmadığını göreceksiniz.


50
Bu durumda geliştirici araçlarına güvenebileceğinizden şüpheliyim. Yalnızca tek bir sekmeden gelen trafiği gösterir ve indirmenin o sekme bağlamında çalıştığını sanmıyorum. Sanırım, ziyaret etmediğiniz bir bağlantıdaki içerik menüsünden "farklı kaydet" i kullanarak, ağ sekmesinde görünmelisiniz - ama görünmüyor.
kapex

@kapex Anlaşıldı. Ancak, görülmemiş bir bağlantıda olduğu gibi tasarruf etmek, bu durumda olan şey değildir.
DavidPostill

5
@kapex İnternet bağlantımı yeni açtım ve hala bir sayfayı doğru bir şekilde kaydedebildim ...
DavidPostill

11
Önbelleği kullandığından şüphe etmiyorum, geliştirici araçlarının bunu kanıtlamak için kullanılabileceğinden şüphe ediyorum. "Farklı kaydet" ve "sayfa kaydet" öğelerinin aynı şekilde davranmasını beklerdim, ancak elbette farklılıklar olabilir. Öyleyse işte başka bir fikir: Geliştirici araçlarında önbelleğe almayı devre dışı bırakırsak, ctrl + s komutunun kullanılması kesinlikle ağ sekmesinde görünmelidir, ancak yine de görünmez.
kapex

1
Belirli bir sayfaya bağlı olmayanlar da dahil olmak üzere, tarayıcıdan gelen tüm ağ isteklerini gösteren Tarayıcı Araç Kutusu'nu kullanmanız gerekir.
Neil


1

Muhtemelen.

CSS bir @mediaseçiciye sahip. Sayfayı görüntülemek için ne tür bir donanım kullanıldığına bağlı olarak CSS'nin farklı tanımlamalar kullanmasını sağlar - yazıcı, farklı boyutlardaki ekranlar, vb.

CSS ayrıca doğrudan görüntü dosyaları (madde işaretli görüntüler, arka plan görüntüleri) talep edebilir.

Şimdi eğer Firefox sayfayı görüntülerken mevcut donanım için gerekli olanı indirirse, ancak diske kaydederken her şeyi indirirse, fazladan talepleriniz olabilir.

Uyarı:

Bu pratik olarak faydalı bir cevabın sadece ilk yarısı; ikinci yarı bu senaryoyu test ediyor olacaktı. Maalesef zamanım tükeniyor, biri tekrarlanabilir test sonuçlarını bildirebilirse herhangi bir düzenleme veya yorum kabul ediyorum.


Hayır, tüm CSS dosyaları indirilir, yalnızca ayrıştırılmaz :)
Martijn
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.