2013-07-18 35 views
6

Tôi biết cách để đợi ajax hoàn thành, nhưng nếu tôi định chuyển hướng một trang sau khi một số cuộc gọi ajax bị tắt, tôi có nên chờ cho đến khi hoàn thành trước khi chuyển hướng không? Nó có quan trọng không?Tôi có nên đợi ajax hoàn thành để chuyển hướng một trang không?

+5

Tôi đoán điều đó phụ thuộc nếu bạn cần thực hiện một số hành vi sai trái xung quanh mã trạng thái được trả về bởi cuộc gọi ajax. Nếu bạn chuyển hướng trước khi nó kết thúc như thế nào bạn sẽ biết nó đã đi qua một cách chính xác? – JanR

Trả lời

5

Nếu bạn tin rằng cuộc gọi ajax sẽ thành công, sau đó khi cuộc gọi ajax xảy ra, việc chuyển hướng sẽ không ảnh hưởng đến nó đến mức máy chủ của bạn có liên quan. Nhưng đừng quên, khách hàng có thể mất kết nối của họ hoặc một số lỗi có thể xảy ra, vì vậy bạn có thể chờ đợi để đảm bảo các cuộc gọi đã thành công. Một điều cần xem xét là có hay không cuộc gọi ajax của bạn sẽ ảnh hưởng đến bất kỳ trang nào bạn sẽ chuyển hướng đến. Trong trường hợp đó, hãy chờ trước khi chuyển hướng. Bạn sẽ không muốn người dùng bị chuyển hướng đến trang bị hỏng vì kết nối của họ bị chậm hoặc máy chủ của bạn bị trục trặc.

+0

Đúng sự thật. Một cuộc gọi ajax đếm số lượt xem trang chẳng hạn, chỉ có thể bị sa thải. – Lix

+1

Ajax có phải là cách hay để đếm lượt xem trang không? Sẽ không tính người dùng bị tắt JS. –

+0

Chỉ có khoảng 2% người dùng đã tắt javascript: http://stackoverflow.com/questions/9478737/browser-statistics-on-javascript-disabled. Vì vậy, thực sự nó phụ thuộc vào chính xác như thế nào bạn muốn được ... Tôi thường chỉ bỏ qua những người cá nhân. – adavea

1

Tôi khuyên bạn nên đợi và xử lý các lỗi có thể xảy ra.

Bạn có được kết nối an toàn, phát hiện lỗi, phần mềm tốt hơn, bằng cách thực hiện toàn bộ quá trình đồng bộ, làm cho việc chuyển hướng đến cuối cùng.

Bạn có thể chi tiêu thêm 0,1 giây để thực hiện nhưng ai quan tâm?

+0

Không đúng sự thật, nó là quá trình mà tôi muốn làm từ ajax là điều gì đó xảy ra trong 20 giây. Vì vậy, quan tâm. – vaso123

+0

Đã một thời gian kể từ khi tôi đưa ra nhận xét này. Những gì tôi cần phải rõ ràng, và về cơ bản tôi ngụ ý điều tương tự như câu trả lời được chấp nhận, là nếu bạn hoàn toàn có thể đảm bảo rằng việc thực hiện sẽ thành công thì chắc chắn, bạn có thể chuyển hướng, nhưng có khả năng kết nối sẽ đơn giản bị mất hoặc một ngoại lệ sẽ xuất hiện mà bạn muốn có thể xử lý. – Jonast92

1

Tôi cho rằng Ajax theo sau bởi chuyển hướng không phải là trường hợp sử dụng tốt cho Ajax. Thay vào đó, tôi khuyên bạn nên thực hiện một yêu cầu máy chủ thông thường và sau đó xử lý mọi hoạt động trên máy chủ trước khi chuyển hướng đến đích cuối cùng của bạn.

Điều này sẽ tạo ra một mẫu đơn giản hơn và lưu lượng mạng ít hơn rất nhiều. Tôi khuyên bạn nên sử dụng Ajax trong trường hợp bạn muốn tránh tải lại trang. Tuy nhiên trong kịch bản của bạn, bạn đang lên kế hoạch rời khỏi trang ngay sau khi các hoạt động của bạn đã hoàn thành, vậy tại sao không tránh qua lại mà Ajax sẽ cung cấp cho bạn.

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