Tôi hiện đang sử dụng dịch vụ/$ tài nguyên để thực hiện cuộc gọi ajax (GET trong trường hợp này) và IE lưu trữ các cuộc gọi để dữ liệu mới không thể truy lục được từ máy chủ. Tôi đã sử dụng một kỹ thuật tôi tìm thấy bằng cách googling để tạo ra một số ngẫu nhiên và nối nó vào yêu cầu, để IE sẽ không đi vào cache cho dữ liệu.Cách nào tốt hơn để ngăn chặn trình duyệt IE trong AngularJS?
Có cách nào tốt hơn là thêm bộ nhớ cacheBất cứ yêu cầu nào không?
Code Factory
.factory('UserDeviceService', function ($resource) {
return $resource('/users/:dest', {}, {
query: {method: 'GET', params: {dest: "getDevicesByUserID"}, isArray: true }
});
Gọi từ bộ điều khiển
$scope.getUserDevices = function() {
UserDeviceService.query({cacheKill: new Date().getTime()},function (data) {
//logic
});
}
Tôi đã thêm tiêu đề No-Cache trên phía máy chủ và nó làm việc cho bây giờ. –
Ufuk, đó có vẻ là cách hiệu quả nhất để thực hiện chăm sóc vấn đề "toàn cầu" hoặc theo cách mở rộng hơn, mà không phải thực hiện mọi cuộc gọi ajax/REST duy nhất. Bạn nên trả lời câu hỏi, vì vậy tôi có thể đánh dấu câu hỏi đó là câu trả lời! Bạn xứng đáng với tín dụng. – binarygiant
BTW, tôi đang sử dụng nút/Express cho máy chủ web và tôi đã hoàn thành những gì Ufuk đề xuất bằng cách thêm mã sau đây để diễn tả config: app.use (function noCache (req, res, next) { res.header ("Cache -Control "," no-cache, no-store, phải xác nhận lại "); res.header (" Pragma "," no-cache "); res.header (" Hết hạn ", 0); tiếp theo (); }) – binarygiant