Tôi có giao diện điều khiển/trang web Asp.Net 4.0 sử dụng bảng cập nhật và một số nút. Bảng điều khiển cập nhật được kết nối với bộ hẹn giờ thực hiện sau mỗi 5 giây, gây ra một phần postback. Các nút Toggles một số cài đặt và sau đó buộc một bản cập nhật của bảng điều khiển cập nhật thông qua một cuộc gọi tương tự như sau:ASP.NET Ajax postback đột nhiên dừng trên IPhone/IPad
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm._doPostBack('<%= UpdatePanel.ClientID %>', '');
return true;
trang web này chạy tốt trên trình duyệt IE/Firefox và trên các thiết bị di động Safari (iPhone/iPad) nhưng trên điện thoại di động thiết bị postback ngẫu nhiên và âm thầm ngừng hoạt động. Tôi tìm số này có thể phải làm với việc tiết kiệm pin và safari sẽ tắt chức năng chờ một phần khi không hoạt động. Vấn đề là khi người dùng quay trở lại trang web, postback bị tắt hoàn toàn và cả timer cũng như các nút đều không gây ra bất kỳ postback nào nữa. (Tôi đã theo dõi lưu lượng mạng trên máy chủ để xác minh điều này). Ngay cả khi người dùng làm mới trang web (nhiều lần), một phần postback lại phát lại. Nó chỉ dừng đăng dữ liệu lên máy chủ. Sau đó đột nhiên và không có lý do cụ thể postback bắt đầu làm việc trở lại. Thời gian ngừng hoạt động thường lên đến 10 phút, điều này hoàn toàn làm cho trang web của tôi vô dụng vì mục đích của nó.
Cho rằng phải mất quá lâu trước khi đăng lại bắt đầu lại, tôi tự hỏi liệu có bất kỳ cài đặt nào ở phía máy khách hoặc trong IIS để chơi không?
Trang web sẽ chỉ chạy trên các thiết bị khách hàng của tôi, không công khai, vì vậy nếu có bất kỳ cài đặt nào để phát trên máy khách, tôi sẽ thực hiện.
Tôi thực sự bối rối về điều này và không tìm thấy cách kích hoạt "lỗi", thỉnh thoảng điều đó xảy ra. Bất kỳ lời khuyên và lời khuyên được nhiều đánh giá cao.
Cập nhật:
gia tăng một số xử lý lỗi và tôi có (không liên tục) nhận được thông báo sau khi postback thất bại:
Trang đang thực hiện một postback async nhưng ScriptManager. Thuộc tính SupportParialRendering được đặt thành false. Đảm bảo rằng thuộc tính được đặt thành true trong khi đăng lại.
Rất tiếc, thuộc tính này rõ ràng là đúng đối với thiết bị trong trường hợp đầu tiên, nếu không, đăng lại sẽ không bao giờ hoạt động, không phải như vậy.
Cập nhật 2: Tìm thấy bài đăng trên blog folloing đề nghị thay đổi cài đặt trình duyệtCap trong web.config. Đang thử điều này ngay bây giờ. Sẽ báo cáo lại. Các đề xuất khác vẫn được nhiều người hoan nghênh. ASP.NET 4 BrowserCaps (or: what were they thinking?)
Tự động tắt javascript ở chế độ toàn màn hình di động ở chế độ toàn màn hình (chạy từ màn hình chính). Bài viết sau đây đề xuất khắc phục sự cố này. Gotcha: iPad versus ASP.NET
Cảm ơn @Avada Kedavra! Đã có cùng một vấn đề chính xác này, ' ' đã sửa nó. Nhiều đánh giá cao! Chưa đặt trong phần 'Page_PreInit', điều này chỉ có thể được đặt trên MasterPage cho phép nói để làm việc thông qua tất cả các trang? –
@mcpDESIGNS: Tôi chưa thử điều đó nhưng quan tâm đến bất kỳ cách nào có thể làm cho giải pháp gọn gàng với ít mã hơn. Bạn có thành công với phương pháp bạn đề xuất không? –
Tôi sẽ phải làm một số thử nghiệm khác trên đó và tôi sẽ cho bạn biết! Và tôi chỉ có nghĩa là đặt 'Page_PreInit' trên trang chính sẽ làm cho nó để bạn không phải sao chép/dán nó vào mỗi trang con. –