Tôi có một ứng dụng mà người dùng có thể thay đổi giá trị chuyển đổi giữa true
và false
bằng nút chuyển đổi/nút nhỏ và thay đổi được tự động gửi tới máy chủ mà không yêu cầu người dùng bấm một cách rõ ràng như "lưu".Các yêu cầu AJAX tiếp theo có được đảm bảo để nhận được theo thứ tự không?
Bây giờ nếu người dùng nhấn nút chuyển đổi hai lần liên tiếp nhanh chóng, có thể máy chủ sẽ nhận các gói dữ liệu không đúng thứ tự và do đó sẽ lưu trữ giá trị sai? Và bởi máy chủ tôi có nghĩa là logic ứng dụng đang chạy trên máy chủ, không phải là ngăn xếp mạng của hệ điều hành.
Tôi biết các gói TCP được đánh số để hệ điều hành nhận được sắp xếp chúng trước khi chuyển chúng đến ứng dụng và HTTP chạy trên đầu trang của TCP. Tuy nhiên, phần tôi tò mò là trong trường hợp HTTP tạo ra/không tạo ra một kết nối TCP mới.
N.B. Tôi đang sử dụng jQuery để gửi các yêu cầu AJAX và tôi giả định rằng họ được đảm bảo để được gửi theo thứ tự giống như các cuộc gọi đến thư viện jQuery. Giả định này có hợp lệ không?
+1; logic đơn giản nhất cho phiên bản như vậy có thể là '(new Date) .getTime()' –
JavaScript +1 là một chuỗi duy nhất do đó jQuery sẽ gửi các yêu cầu theo thứ tự, nhưng không có sự bảo đảm như vậy khi các yêu cầu đến máy chủ. Trong thực tế họ hầu như luôn luôn sẽ nhưng không viết bất kỳ logic để phụ thuộc vào nó. –
@DavidHedlund Watchout: Điều này có thể không thành công khi thời gian thay đổi (thay đổi thời gian rõ ràng của người dùng, đồng bộ hóa máy chủ thời gian). –