Firefox에서 Ctrl+ S로 오프라인 읽기를 위해 웹 사이트를 저장할 때 웹 페이지가 이미로드되어 있지만 다운로드 프로세스가 완료되는 데 몇 초가 걸립니다.
웹 페이지를 저장하면 Firefox가 모든 콘텐츠 (HTML, 이미지, JavaScript, CSS 등)를 두 번째로 가져올 지 또는 캐시에 이미로드 된 파일에서 가져 오는지 궁금합니다.
Firefox에서 Ctrl+ S로 오프라인 읽기를 위해 웹 사이트를 저장할 때 웹 페이지가 이미로드되어 있지만 다운로드 프로세스가 완료되는 데 몇 초가 걸립니다.
웹 페이지를 저장하면 Firefox가 모든 콘텐츠 (HTML, 이미지, JavaScript, CSS 등)를 두 번째로 가져올 지 또는 캐시에 이미로드 된 파일에서 가져 오는지 궁금합니다.
답변:
아니요, 두 번째 요청을 트리거하지 않습니다.
방금 간단한 HTTP 서버를 실행하여 요청을 기록하여 테스트했습니다. 웹 사이트를 저장할 때 서버에서 두 번째 요청을받지 못했습니다.
python -m SimpleHTTPServer 7070
)편집하다:
서버가 "캐시 없음"헤더를 보내는 경우 주석 작성자가 다른 동작에 대해 물었습니다. 나는 그것을 테스트 Pragma: No-Cache
하고 Cache-Control: No-Cache
그 결과는 동일하게 유지됩니다.
테스트를 수행하는 데 사용한 코드 ( 이 답변을 통해 ) :
#!/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)
아닙니다.
인터넷에서 컴퓨터의 연결을 끊고 이미로드 된 웹 페이지를 저장하여 코드없이 이것을 테스트했습니다.
효과가있었습니다. 동일한 테스트를 직접 수행 할 수 있습니다.
컴퓨터가 온라인 또는 오프라인 인 경우 동작 이 다를 수 있지만 현재 가장 많이 사용되는 답변 은보다 심도있는 테스트를 보여줍니다. 간단한 테스트 를하는 것이 여전히 가치 있다고 생각합니다 .
웹 페이지 ( ctrls)를 저장하면 Firefox가 모든 컨텐츠를 두 번째로 가져 옵니까?
Firefox의 개발자 도구를 사용하여 쉽게 테스트 할 수 있습니다 .
도구를 열고 "네트워크"탭을 클릭하십시오.
페이지를 저장하십시오
추가 네트워크 트래픽이 생성되지 않습니다.
다른 답변과 달리 Firefox 59.0은 (내 테스트에서) 이미지는 두 번 다운로드하지만 HTML 파일은 다운로드하지 않습니다.
나는 임의의 이미지 ( https://cdn.shopify.com/s/files/1/1613/3867/products/GS_cat_feeding_reminder_forget_someone.png?v=1520745318 )를 로드하고 ctrl+ s를 사용 하여 저장했습니다.
혹시.
CSS에는 @media
선택기가 있습니다. CSS는 페이지를 표시하는 데 사용되는 하드웨어 종류 (프린터, 크기가 다른 화면 등)에 따라 다른 정의를 사용할 수 있습니다.
CSS는 이미지 파일 (글 머리 기호 이미지, 배경 이미지)을 직접 요청할 수도 있습니다.
이제 Firefox가 페이지를 표시 할 때 현재 하드웨어에 필요한 것만 다운로드하지만 디스크에 저장할 때 모든 것을 다운로드하면 추가 요청이있을 수 있습니다.
경고:
이것은 실질적으로 유용한 답변의 상반기입니다. 후반은이 시나리오를 테스트하는 것입니다. 불행히도, 나는 시간이 없어서 누군가가 반복 가능한 테스트 결과를보고 할 수 있다면 편집이나 의견을 수락 할 것입니다.