Trong ứng dụng ASP.Net của tôi, đó là javascript và jQuery nặng, nhưng cũng sử dụng các trang chính và các phần Ajax .Net, tôi luôn thấy trên thanh trạng thái của IE 6 (và đôi khi IE 7) thông báo "2 mục còn lại "hoặc" 15 mục còn lại ", tiếp theo là" tải somegraphicsfile.png | gif ". Thông báo này không bao giờ biến mất và có thể hoặc không thể ngăn một số chức năng của trang chạy (nó dường như chắc chắn sẽ bị hỏng, nhưng tôi không tích cực).Bất cứ ai cũng có ý tưởng để giải quyết vấn đề "n mục còn lại" trên Internet Explorer?
Tôi có thể khiến điều này xảy ra 99% thời gian bằng cách chỉ làm mới độ tuổi .aspx, nhưng số lượng mục và đôi khi, tệp mà nó đề cập khác nhau. Thông thường, nó là 2, 3, 12, 13 hoặc 15.
Tôi đã tìm kiếm câu trả lời cho Googled và có một số đề xuất hoặc giải thích. Một số người trong số họ đã không làm việc cho chúng tôi, và những người khác không thực tế để chúng tôi thực hiện hoặc thử.
Dưới đây là một số ý tưởng/lý thuyết:
IE không được bộ nhớ đệm hình ảnh đúng, vì vậy nó lặp đi lặp lại yêu cầu cùng một hình ảnh nếu hình ảnh được lặp đi lặp lại trên trang và máy chủ giả định rằng nó nên được lưu vào bộ nhớ cache cục bộ vì nó đã được phân phát trong ngữ cảnh trang đó. IE hiển thị hình ảnh một cách chính xác, nhưng ngồi và đợi một phản hồi của máy chủ không bao giờ đến. Thông thường các tập tin nó nói nó đang chờ được lặp lại trên trang.
Trang đang sử dụng đồ họa PNG có độ trong suốt. Quả thực nó là, nhưng họ là jQuery-UI Themeroller tạo ra đồ họa mà, theo jQuery-UI folks, là IE an toàn. Các thành phần jQuery-UI là những thứ duy nhất sử dụng PNG. Tất cả các tham chiếu PNG của chúng tôi đều nằm trong CSS, nếu có. Tôi đã thay đổi một số đồ họa từ PNG tới GIF, nhưng nó cũng giống như khả năng nói nó chờ đợi somegraphicsfile.png vì nó là dành cho somegraphicsfile.gif là
hình ảnh đang được quy định tại CSS và/hoặc JavaScript nhưng trên những thứ hiện không được hiển thị (ví dụ: không có mục nào). Điều này có thể là đúng, nhưng nếu có, thì tôi sẽ nghĩ rằng tải trước hình ảnh sẽ hoạt động, nhưng cho đến nay, việc thêm trình tải trước không thực hiện bất kỳ điều gì tốt.
Chính sách lưu bộ nhớ cache của IIS gây nhầm lẫn cho trình duyệt. Nếu điều này là đúng, nó chỉ là máy chủ của Microsoft SW gặp sự cố với trình duyệt của Microsoft (điều này không làm tôi ngạc nhiên chút nào). Thật không may, tôi không có nhiều quyền kiểm soát cấu hình IIS sẽ lưu trữ ứng dụng.
Có ai nhìn thấy điều này và tìm ra cách chống lại nó không? Đặc biệt trên các ứng dụng ASP.Net với jQuery và jQuery-UI?
CẬP NHẬT
Một điểm dữ liệu khác: trên ít nhất một trong các trang này, ngay ý kiến ra jQuery-UI cài đặt phần datepicker gây ra vấn đề ra đi, nhưng tôi không nghĩ (hoặc ít ít nhất tôi không chắc chắn) nếu điều đó sửa tất cả các trang. Nếu nó "sửa" chúng, tôi sẽ phải hoán đổi các plug-in vì chức năng đó cần phải có. Dường như không có bất kỳ sự cố mở nào chống lại jQuery-UI trên IE6/7 hiện tại ...
CẬP NHẬT 2
Tôi đã kiểm tra các thiết lập IIS và "cho phép hết hạn nội dung" là không bộ vào bất kỳ thư mục của tôi. Bỏ chọn cài đặt đó là một đề xuất phổ biến để khắc phục vấn đề này.
Tôi có một trang khác, đơn giản hơn mà tôi có thể tạo lỗi liên tục. Tôi đang sử dụng tệp jQuery-UI 1.6rc6 (mặc dù tôi cũng đã thử jQuery-UI 1.7.1 với cùng kết quả). Vấn đề chỉ xảy ra khi tôi làm mới trang có chứa jQuery-UI Datepicker. Nếu tôi nhận xét thiết lập Datepicker, vấn đề sẽ biến mất. Dưới đây là một vài điều tôi nhận thấy khi tôi thực hiện việc này:
- Trang này luôn cho biết "(1 mục còn lại) Tải xuống ảnh http: ///images/Calendar_scheduleHS.gif", nhưng chỉ khi tải lại.
- Khi tôi nhìn vào ghi nhật ký HTTP, tôi thấy rằng nó yêu cầu hình ảnh đó từ máy chủ mỗi khi được bật động, không tính đến bộ nhớ đệm.
- Tất cả các yêu cầu cho hình ảnh đó đều hoàn chỉnh và trả về đồ họa chính xác. Không có mã nào được đánh dấu là 200 hoặc 304 (chỉ ra rằng máy chủ đang yêu cầu IE sử dụng phiên bản được lưu trong bộ nhớ cache). Tại sao nó nói chờ đợi trên đồ họa đó khi tất cả các yêu cầu đã hoàn thành tôi không có ý tưởng.
- Có một hình ảnh khác trên trang (một trong các tệp giao diện người dùng PNG) có mã 304 (Không được sửa đổi). Trên một trang khác mà tôi quản lý để ghi lưu lượng truy cập HTTP với "2 mục còn lại", hai tệp đồ họa khác nhau (cả PNG giao diện người dùng) cũng có 304 (nhưng không phải là tệp được liệt kê là "Đang tải xuống".
- Lỗi này không phải là vô hại - trang không đáp ứng đầy đủ Ví dụ: nếu tôi nhấp vào một trong các nút cần thực hiện tác vụ phía máy khách, trang sẽ làm mới.
- Tôi đã di chuyển tập lệnh và tham chiếu tập lệnh đến cuối nội dung và điều này không ảnh hưởng đến vấn đề này. Kịch bản vẫn đang chạy trong $ (document) .ready() mặc dù (quá lông để phân chia trừ khi Tôi hoàn toàn phải).
CẬP NHẬT CUỐI CÙNG VÀ ĐÁP
Đã có rất nhiều câu trả lời tốt và gợi ý dưới đây, nhưng không ai trong số họ là chính xác vấn đề của chúng tôi. Cái gần nhất (và cái dẫn tôi đến giải pháp) là một JavaScript dài chạy, vì vậy tôi đã trao tiền thưởng ở đó (tôi đoán mình có thể tự trả lời, nhưng tôi muốn thưởng cho thông tin dẫn đến giải pháp) .
Đây là giải pháp của chúng tôi: Chúng tôi đã có nhiều trình tạo ngày jQueryUI được tạo trên sự kiện $ (tài liệu) .ready trong tập lệnh được bao gồm từ trang chủ ASP.Net. Trên trang máy khách này, một sự kiện $ (document) .ready của tập lệnh cục bộ có kịch bản đã phá hủy các trình đặt chỗ theo các điều kiện nhất định. Chúng tôi đã phải sử dụng "phá hủy" bởi vì phiên bản trước của datepicker đã có một vấn đề với "vô hiệu hóa". Khi chúng tôi nâng cấp lên phiên bản mới nhất của giao diện người dùng jQuery (1.7.1) và thay thế "phá hủy" với "vô hiệu hóa" cho trình duyệt ngày, sự cố đã biến mất (hoặc hầu hết đã biến mất - nếu bạn làm việc quá nhanh trong khi trang đang tải, vẫn có thể nhận trạng thái "n mục còn lại").
Lý thuyết của tôi như những gì đã xảy ra đi như thế này:
- Nội dung tải trang và có 12 hoặc nên hộp văn bản với datepicker lớp.
- Tập lệnh trang chính tạo trình đặt ngày trên các hộp văn bản đó.
- IE xếp hàng các yêu cầu cho từng hình ảnh lịch độc lập vì IE không biết cách làm thế nào để lưu trữ đúng hình ảnh động yêu cầu.
- Trước khi yêu cầu được xử lý, tập lệnh khu vực khách hàng hủy các trình đặt chỗ trước đó để đồ họa không còn cần thiết nữa.
- IE còn lại với một số số yêu cầu mồ côi rằng nó không biết phải làm gì với.
Bạn có thể cung cấp liên kết đến trang web không? Có thể nó chỉ là bạn đang gặp vấn đề do một số thiết lập địa phương? – BYK
Điều gì sẽ xảy ra nếu không có Javascript nào có liên quan (Tôi đã vô hiệu hóa các tập lệnh trong IE8 để đảm bảo)? Hơn nữa, điều gì sẽ xảy ra nếu trang web đang được "lưu trữ" thông qua Máy chủ Phát triển ASP.NET của Visual Studio? Điều này là hoàn toàn ngẫu nhiên. Đôi khi các trang web này tải tốt, thời gian khác, chúng sẽ dừng lại mãi mãi với "1 mục còn lại". –