2012-07-22 18 views
5

Tôi có một ki-ốt xử lý ảnh chân dung của mọi người. Nó đang chạy trong chrome.Tiện ích mở rộng của Chrome để theo dõi kiosk và tải lại nếu cần

Một trong 200 người sử dụng kiosk sẽ bị đóng băng trong quá trình xử lý. Khi nó đóng băng, tôi không bao giờ nhận được "ah snap" và trang chỉ bị treo cứng.

Tôi đã tự hỏi nếu có thể thực hiện tiện ích mở rộng để theo dõi trang và kiểm tra nhịp tim - Nếu không thấy sau 30 giây tải lại cửa sổ.

Mọi trợ giúp đều tuyệt vời.

+0

Điều này không nên xảy ra. Bạn nên gỡ lỗi ứng dụng đang chạy trong trình duyệt chrome của mình! Có vẻ như bạn hết bộ nhớ - bạn có xóa ảnh chân dung cũ không? – gronke

+0

Tôi đồng ý. Nhưng nó không phải là đơn giản. nó không liên quan đến bộ nhớ. Một số ki-ốt sẽ xử lý hàng ngàn người trước khi nó xảy ra, nhưng nó có thể xảy ra hai lần liên tiếp. Nó có thể là một lỗi canvas như khi nó treo hình ảnh khuôn mặt trong canvas chuyển sang một vòng tròn màu đỏ và đen. Và im không bao giờ làm một điền vào nơi mà bất cứ điều gì như thế sẽ xảy ra. –

Trả lời

5
  1. Có một kịch bản nội dung trong trang kiosk gửi tin nhắn mỗi X giây trở lại trang nền

    Trong kịch bản nội dung:

    var port = chrome.extension.connect({ name: "keep-alive" }); 
    
    port.postMessage('is-alive', { alive: true }); 
    
    setInterval(function() { 
        port.postMessage('is-alive', { alive: true }); 
    }, 1000 * 15); 
    
  2. Nếu trang nền phát hiện thông điệp đã không trở lại sau một thời gian nhất định sau đó tải lại tab

    Trong trang nền:

    var last = Date.now(); 
    var interval = 1000 * 15; 
    
    chrome.extension.onConnect.addListener(function (port) { 
        if (port.name === 'keep-alive') { 
         port.onMessage.addListener(function (data) { 
          if (data.type === 'is-alive' && data.payload.alive === true) { 
           last = Date.now(); 
          } 
         }); 
        } 
    }); 
    
    setInterval(function() { 
        if (Date.now() - last > interval) { 
         // Reload the tab... 
        } 
    }, interval); 
    

Để biết thông tin về tải lại tab, hãy xem tài liệu chrome.tabs. Bạn sẽ cần phải thêm tabs vào danh sách cấp phép của mình trong tệp kê khai.

Nếu bạn muốn biết thêm về việc chuyển thư, hãy xem tài liệu Messaging.

+0

"Tải lại tab" -> Hãy xem API ['chrome.tabs'] (http://code.google.com/chrome/extensions/tabs.html). –