我必須建立一個自助服務終端應用程序,它基本上是一些全屏圖像,帶有一些交互式頁面,也是全屏,介於兩者之間,應該可以滑動。Fullscreen HTML kiosk應用程序的內存/性能問題
硬件環境將混合使用平板電腦和32英寸觸摸顯示器。這些平板電腦將由站在展臺上的傢伙處理,顯示屏可供所有人免費使用。我們可能會使用Win 8 Pro平板電腦和連接到觸摸顯示器的Windows PC。
這樣我就可以用HTML/JS/CSS
在Chrome's Kiosk Mode上全屏運行來構建應用程序。我正在考慮使用RoyalSlider,它非常適合將圖像和html幻燈片結合使用,並且可以很好地與觸摸輸入結合使用。
這些圖像的分辨率都將達到1920 x 1080,並且將會有大約200個。建立一個原型,我看到這推動RoyalSlider
達到極限。
的問題是,我要麼在刷卡太快還是我設置numImagesToPreload
爲高值,最終使瀏覽器中使用了大量的內存,然後崩潰當導致沒有準備好立即圖像一個很小的值離開numImagesToPreload
儘快嘗試刷第一頁。
這是原型我已經建立了
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="royalslider/royalslider.css">
<link rel="stylesheet" href="royalslider/skins/default/rs-default.css">
<script src="royalslider/jquery-1.8.3.min.js"></script>
<script src="royalslider/jquery.royalslider.min.js"></script>
<style type="text/css">
html,body,div {
margin:0; padding:0;
}
html, body {
width: 100%;
height: 100%;
overflow:hidden; // to avoid scrollbars
}
.royalSlider {
position: absolute;
width: auto;
height: auto;
left: 0px;
top: 0px;
right: 0px;
bottom: 0px;
}
</style>
<script type="text/javascript">
function processXML() {
var xml = loadXML("data.xml");
var xmlDoc = $.parseXML(xml);
var $xml = $(xmlDoc);
$xml.find('page').each(function(index)
{
var src = $(this).find('src').text();
var ext = src.split('.').pop();
var newElement = 'None';
if (ext === 'html')
{
newElement = loadHTMLFile(src);
}
else if (ext === 'jpg' || ext === 'jpeg' || ext === 'png')
{
newElement = '<img src="' + src + '" />';
};
$('.royalSlider').append(newElement);
});
}
function loadHTMLFile (filename) {
return loadFile(filename, 'html');
}
function loadXML (filename) {
return loadFile(filename, 'xml');
}
function loadFile (filename, filetype) {
return $.ajax({
type: "GET",
url: filename,
dataType: filetype,
async: false
}).responseText;
}
</script>
</head>
<body>
<div class="royalSlider rsDefault">
</div>
<script>
jQuery(document).ready(function($) {
processXML();
$(".royalSlider").royalSlider({
controlNavigation: 'none',
arrowsNav: false,
navigateByClick: false,
autoScaleSlider:false,
autoHeight: false,
imageScaleMode: 'none',
slidesSpacing: 0
});
});
</script>
</body>
和片段我data.xml
<?xml version="1.0" encoding="utf-8"?>
<content>
<page>
<src>fullhd/page_001.jpg</src>
</page>
<page>
<src>fullhd/page_002.jpg</src>
</page>
<page>
<src>fullhd/page_003.jpg</src>
</page>
<page>
<src>fullhd/page_004.jpg</src>
</page>
...
</content>
有誰知道我怎麼能優化RoyalSlider
解決上述問題? 或者你知道任何方法/工具/框架,我應該看看嗎?
你可能是在一個棘手的時間,因爲在內存中存儲如此多的大圖像(未壓縮的位圖)是一定要去佔用空間。嘗試使用IE11的內存分析器,爲初學者。 (另外,您可以首先確定您計劃使用的平板電腦具有1920x1080屏幕,而不是像素更少嗎?) – Katana314
這可能有所幫助 - http://help.dimsemenov.com/kb/royalslider-jquery-plugin -faq /滑塊性能的提示 –