2013-10-11 40 views
6

Tôi có Ajax request để cập nhật trang khách hàng nếu có bất kỳ dữ liệu mới nào cho máy chủ. Tôi đã thiết lập kết nối 'keep-Alive' Vì vậy, ở đây tôi không thực hiện cuộc gọi mới Ajax mỗi lần kiểm tra dữ liệu cập nhật. Tôi có cuộc gọi lại để cập nhật trang nếu có bất kỳ bản ghi nào.Tiêu đề yêu cầu Ajax giữ nguyên

Dưới đây là Ajax Request của tôi.

xmlRequest.open("post", url, true); 
xmlRequest.setRequestHeader("Connection", "Keep-Alive"); 
xmlRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded;"); 
xmlRequest.send(some data); 

Nó hoạt động tốt, nhưng nếu người dùng làm mới trình duyệt thì Ajax không nhận được dữ liệu cập nhật từ máy chủ.

Khái niệm của tôi không rõ ràng về cách loại kết nối "keep-Alive" hoạt động. nhưng có vẻ như khi người dùng làm mới trình duyệt thì kết nối Ajax bị mất đến máy chủ do đó Ajax đã ngừng liệt kê.

Tôi biết tôi có thể khắc phục điều này bằng cách thực hiện cuộc gọi mới bất cứ khi nào trình duyệt làm mới trang. nhưng ở đây tôi muốn hiểu nó thực sự Ajax keep-Alive mất kết nối khi làm mới trình duyệt.

Trả lời

0

Môi trường javascript thường bị xóa khi đặt lại trang nhưng bạn có thể sử dụng window.localStorage để duy trì qua làm mới và duy trì biến xmlRequest của mình. Sau đó, bạn sẽ có thể kiểm tra phía máy khách + máy chủ cùng nhau để xem liệu có cần phải khởi tạo lại kết nối hay không.

+0

kho lưu trữ (cục bộ và toàn cầu) không thể chuyển giao cho máy chủ. Hãy sửa lỗi dễ dàng hơn bằng cách sử dụng cơ chế cookie thay vào đó, chuỗi 'document.cookie' cũng sẽ được chuyển sang máy chủ, nếu bạn đang bán phá giá trên máy chủ, bạn có thể thực hiện kiểm tra sanity hoàn chỉnh, ngoài ra bạn vẫn có thể xem nó trên trình duyệt .. –

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