2014-10-07 19 views
8

Tôi đã sử dụng chức năng hiển thị trước của Chrome sử dụng"cookie xung đột" trong Google Chrome PreRender

<link rel="prerender" href="/path" /> 

Nhưng sau khi các bản cập nhật lates, khi tôi cố gắng để gỡ lỗi bằng [chrome://net-internals/#prerender]. Nó cho thấy rằng việc hiển thị trước đã bị hủy bỏ do "Cookie Conflict".

Tôi đã cố gắng gỡ lỗi để đảm bảo nếu một số cuộc gọi ajax đang thay đổi cookie sau khi trang được tải, nhưng không tìm thấy. Tuy nhiên, phần đầu tiên bị hủy bỏ. Nó được sử dụng để làm việc tốt với các bản dựng trước của chrome.

+0

Tôi nghĩ rằng đó là lỗi đã biết. kiểm tra điều này: https://groups.google.com/a/chromium.org/forum/#!msg/prerender/vcjoQmwwpM0/H0Q17LS1qW8J – newDevGeek

Trả lời

1

Điều bạn thấy là do xung đột cookie.

Ví dụ:

Giả sử a.com sử dụng một lời chào Cookie = ... để chỉ một lời chào người dùng muốn được chào đón với.
Giả sử lời chào được đặt thành "hello". Chúng tôi đầu tiên a.com/a.html, trình bày "lời chào = hello". Khi máy chủ tạo a.html, , nó sẽ phát ra 'hello' từ cookie trên trang web đang được hiển thị trước.

Bây giờ, trước khi hiển thị trước, giả sử một số trang khác trên cập nhật a.com chào mừng bạn đến "greeting = howdy" Tiếp theo, giả sử người dùng điều hướng đến a.com/a.html. Phần đầu tiên sẽ được đổi chỗ. Tuy nhiên, nó đã thấy một phiên bản khác của cookie "chào mừng" so với giá trị hiện tại của nó. Do đó, trang vẫn hiển thị 'hello', chứ không phải là (cập nhật) 'howdy'.

Trong nội bộ, nó theo dõi tất cả cookie được hiển thị trong khi xuất hiện trước (trong tiêu đề HTTP hoặc javascript). Nếu bất kỳ điều nào trong số này được sửa đổi trước khi hiển thị trước, nó sẽ vô hiệu hóa phần đầu tiên.

Loại vô hiệu này là những gì bạn quan sát được.

Các vấn đề liên quan