Plugin pjax JQuery có trình xử lý lỗi mặc định, sẽ chỉ tải lại trang đích. Trình xử lý lỗi này được gọi khi hết thời gian chờ, mà pjax đặt rất thấp. Do đó, nếu yêu cầu của bạn mất quá nhiều thời gian, bạn sẽ thấy hai yêu cầu giống hệt nhau. Yêu cầu pjax (có thể với thuộc tính _pjax), tiếp theo là một yêu cầu không phải pjax khác. Trong trình duyệt, bạn có thể sẽ thấy toàn bộ trang tải lại.
Một điều tôi tìm thấy trong tình huống của mình, đó là bản thân phản ứng không mất nhiều thời gian. Tuy nhiên, HTML đã được trả lại bao gồm một nhúng flash. Tôi không chắc chắn nếu mã pjax được phản ứng của nó trước hoặc sau khi nhúng flash được tải.
Để giải quyết vấn đề, tôi đã thay đổi mã PJax tôi để trông giống như ...
$.pjax({
url: xhr.getResponseHeader('Location'),
container: '#container',
timeout: 4000 // pick a suitable timeout
});
Tất nhiên, điều này được gọi pjax trực tiếp. Nếu bạn không gọi trực tiếp, bạn sẽ phải tìm một giải pháp tương tự.
Chúng tôi cần xem giải thích chi tiết hơn về câu hỏi của bạn. Vui lòng đăng một số mã, tệp nhật ký hoặc các nội dung khác có liên quan. – Bojangles
Tôi đang gặp sự cố tương tự. Tôi có một ví dụ có sẵn [ở đây trên cloudfoundry] (http://scaffolding.cloudfoundry.com/book/list). Các liên kết phân loại và sắp xếp bảng phải là pjax nhưng sử dụng firebug bạn có thể quan sát chúng tạo ra một yêu cầu XHR theo sau là toàn bộ trang làm mới. Mã nguồn cho ứng dụng đang chạy có [ở đây trên GitHub] (https://github.com/robfletcher/grails-enhanced-scaffolding/tree/pjax) tệp có liên quan có thể là 'grails.list.js' –
Với Firebug Tôi đã thiết lập rằng trong trường hợp xử lý thành công mặc định của pjax của tôi là không tìm thấy bất kỳ nội dung nào bằng cách sử dụng bộ chọn phân đoạn mà tôi đã cho nó. Nhìn vào [mã pjax] (https://github.com/defunkt/jquery-pjax/blob/master/jquery.pjax.js#L106) trong trường hợp đó, nó sẽ thực hiện làm mới toàn bộ trang. Tôi không rõ tại sao bộ chọn không hoạt động vì phản hồi AJAX có vẻ ổn và bộ chọn là hợp lệ. –