Việc lưu một trang web bằng Ctrl + S trong Firefox có khiến trình duyệt tải trang web lần thứ hai không?


58

Khi lưu một trang web để đọc ngoại tuyến bằng Ctrl+ Strong Firefox, tôi nhận thấy rằng quá trình tải xuống mất vài giây để hoàn tất mặc dù trang web đã được tải.

Tôi đang tự hỏi liệu việc lưu trang web như vậy sẽ khiến Firefox tìm nạp tất cả nội dung (HTML, hình ảnh, JavaScript, CSS, v.v.) lần thứ hai hay liệu nó sẽ lấy nó từ các tệp đã được tải trong bộ đệm.


Theo tôi nhớ, firefox cũ đã tải lại trang. Các câu trả lời dành cho firefox hiện tại. Đó là từ một số năm như vậy.
dùng259412

Bạn có thể làm rõ những gì bạn gọi là "quá trình tải xuống"? Mặc dù các tài nguyên trong bộ nhớ không nên được tải xuống lại từ mạng, trình duyệt vẫn có những việc cần làm để xuất tất cả dữ liệu trong một thư mục + thay đổi liên kết, v.v. Ngoài ra, nếu đĩa lưu trữ bị tạm dừng, có thể mất đôi khi chỉ để đánh thức nó để chúng ta có thể viết cho nó. Nhưng nếu bạn đang nói về Thư viện> Bảng điều khiển tải xuống mất thời gian và hiển thị thứ gì đó như 1,2Mb / giây, thì điều đó có thể liên quan đến hồi quy này, họ đã không coi đó là một lỗi ...
Kaiido

4
Mặc dù những người dùng khác đã trả lời một cách khéo léo, nhưng lưu ý rằng việc lập danh mục hành vi như vậy trên bất kỳ phần mềm nào thường có thể là một nỗ lực vô ích trừ khi nhà cung cấp phần mềm đảm bảo hành vi được cung cấp. Và vì vậy, bất kỳ câu trả lời nào được đánh dấu là chính xác đều phải chỉ ra phiên bản mà nó đã được kiểm tra thay vì đưa ra một giả định rộng rãi về tất cả các phiên bản trong tương lai và trong quá khứ. Điều tốt là câu trả lời hàng đầu đã giải quyết mối quan tâm này. Tôi biết; nitpicking.
Ad Nam Y

Mặc dù điều này trông giống như, và bằng mọi cách là "WTF", nhưng thực tế cho thấy điều này hoàn toàn bình thường cách đây một thập kỷ, không chỉ với Firefox. Đừng hỏi tôi tại sao, nó chẳng có ý nghĩa gì cả.
Damon

Câu trả lời:


68

Không, nó không kích hoạt yêu cầu thứ hai.

Tôi chỉ kiểm tra nó bằng cách chạy một máy chủ HTTP đơn giản để ghi lại các yêu cầu. Máy chủ không nhận được yêu cầu thứ hai khi lưu trang web.

  • Đã thử nghiệm với: Firefox 61.0.1 (64-Bit) trên Ubuntu 18.04
  • Máy chủ: Mô-đun SimpleHTTPServer của python 2.7.15 ( python -m SimpleHTTPServer 7070)

Biên tập:

Những người bình luận hỏi về hành vi khác nhau nếu máy chủ đang gửi các tiêu đề "không có bộ đệm". Tôi đã thử nó với Pragma: No-CacheCache-Control: No-Cachekết quả vẫn như cũ.

Mã tôi đã sử dụng để làm bài kiểm tra (thông qua câu trả lời này ):

#!/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

Không, nó không.

Tôi vừa kiểm tra điều này mà không có bất kỳ mã nào bằng cách ngắt kết nối máy tính của tôi khỏi Internet và sau đó lưu một trang web đã được tải.

Nó đã làm việc. Bạn có thể tự làm bài kiểm tra tương tự.


Cho rằng hành vi thể khác nếu máy tính trực tuyến hoặc ngoại tuyến, nhưng câu trả lời hàng đầu hiện tại cho thấy một bài kiểm tra sâu hơn. Tôi chỉ nghĩ rằng nó vẫn có giá trị để có một bài kiểm tra đơn giản .


11
Có rất nhiều kết hợp Hết hạn, Kiểm soát bộ đệm, Thực dụng và có thể các tiêu đề khác, "không phải trong trường hợp này" chắc chắn không có nghĩa là "không bao giờ". Không nhìn vào mã nguồn, tôi sẽ không đặt cược vào bất cứ điều gì.
Guntram Blohm

5
@GuntramBlohm, hoàn toàn đúng. Mặt khác, nếu thử nghiệm đơn giản thất bại, sau đó bạn có thể dứt khoát kết luận rằng tổ hợp phím Ctrl-S sẽ không luôn luôn làm việc mà không gửi một yêu cầu bổ sung cho máy chủ, thậm chí nếu nó có thể đôi khi làm như vậy. Vì vậy, bài kiểm tra đơn giản vẫn có giá trị; Tôi đã ngạc nhiên không ai khác đã đề cập đến nó, vì vậy tôi đã làm.
tự đại diện

8

Việc lưu một trang web ( ctrls) có khiến Firefox tìm nạp tất cả nội dung lần thứ hai không?

Điều này dễ dàng được kiểm tra bằng các công cụ dành cho nhà phát triển của Firefox .

  • Mở các công cụ và nhấp vào tab "Mạng".

  • Lưu trang

Bạn sẽ thấy không có lưu lượng truy cập mạng được tạo thêm.


50
Tôi nghi ngờ rằng chúng tôi bạn có thể dựa vào các công cụ phát triển trong trường hợp này. Nó chỉ hiển thị lưu lượng truy cập từ một tab duy nhất và tôi không nghĩ rằng tải xuống đang chạy trong ngữ cảnh của tab đó. Tôi nghĩ bằng lý luận của bạn bằng cách sử dụng "lưu dưới dạng" từ menu ngữ cảnh trên một liên kết mà bạn chưa truy cập sẽ hiển thị trong tab mạng - nhưng không.
kapex

@kapex Đã hiểu. Nhưng lưu như trên một liên kết không mong muốn không phải là những gì đang xảy ra trong trường hợp này.
DavidPostill

5
@kapex Tôi vừa rút kết nối internet của mình và vẫn có thể lưu chính xác một trang ...
DavidPostill

11
Tôi không nghi ngờ rằng nó sử dụng bộ đệm, tôi chỉ nghi ngờ rằng các công cụ dành cho nhà phát triển có thể được sử dụng để chứng minh điều đó. Tôi hy vọng cả "lưu dưới dạng" và "lưu trang" sẽ hoạt động theo cùng một cách nhưng tất nhiên có thể có sự khác biệt. Vì vậy, đây là một ý tưởng khác: Nếu chúng tôi vô hiệu hóa bộ nhớ đệm trong các công cụ dành cho nhà phát triển, sử dụng ctrl + s chắc chắn sẽ hiển thị trong tab mạng, nhưng một lần nữa thì không.
kapex

1
Bạn phải sử dụng Hộp công cụ trình duyệt, hiển thị tất cả các yêu cầu mạng từ trình duyệt, bao gồm cả các yêu cầu nội bộ không được liên kết với một trang cụ thể.
Neil


1

Có khả năng.

CSS có một @mediabộ chọn. Nó cho phép CSS sử dụng các định nghĩa khác nhau tùy thuộc vào loại phần cứng nào đang được sử dụng để hiển thị trang - máy in, màn hình có kích thước khác nhau, v.v.

CSS cũng có thể trực tiếp yêu cầu các tệp hình ảnh (hình ảnh dấu đầu dòng, hình nền).

Bây giờ nếu Firefox chỉ tải xuống những gì cần thiết cho phần cứng hiện tại khi hiển thị trang, nhưng tải xuống mọi thứ khi lưu vào đĩa, thì bạn có thể có thêm yêu cầu.

Hãy cẩn thận:

Đây chỉ là nửa đầu của một câu trả lời thực tế hữu ích; nửa sau sẽ thử nghiệm kịch bản này. Thật không may, tôi sắp hết thời gian, vì vậy tôi sẽ chấp nhận mọi chỉnh sửa hoặc nhận xét nếu ai đó có thể báo cáo kết quả kiểm tra lặp lại.


Không, tất cả các tệp CSS được tải xuống, chỉ không được phân tích cú pháp :)
Martijn
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.