I've made an interface to a server at work to verify whether print servers and printers are up dynamically, and feed it back to the Pebble. The functionality is fine, the issue I'm having is with the Menu. I'll load the menu, then start scrolling down, and suddenly the items aren't there. It takes about 6 seconds, then they show up. It's true of scrolling both up and down. There are a lot of menu options, but it would do it even with six items in the menu.
Is this just a limitation of processing power, or the pebble.js script, or am I doing something wrong?
-- UPDATE -- For future reference, a reboot of the Pebble made the rendering significantly faster. Rookie mistake...
var UI = require('ui');
var ajax = require('ajax');
var main = new UI.Card({
title: 'Pebble Interface',
icon: 'images/mattec.png',
body: 'Press Top Button to open Cell Picker.'
});
main.show();
main.on('click', 'up', function(e) {
var menu = new UI.Menu({
sections: [{
items: [{
title: 'ALMSC1'
}, {
title: 'ALMSC2'
}, {
title: 'DL 1'
}, {
title: 'DL 2'
}, {
title: 'DL 3'
}, {
title: 'DL 4'
}, {
title: 'EDGER'
}, {
title: 'EPOXYA'
}, {
title: 'EPOXYP'
}, {
title: 'FORK 1'
}, {
title: 'FORK 2'
}, {
title: 'HICK 1'
}, {
title: 'HICK 2'
}, {
title: 'LG 1'
}, {
title: 'LG 2'
}, {
title: 'LG 3'
}, {
title: 'LG 4'
}, {
title: 'LG 5'
}, {
title: 'LG 6'
}, {
title: 'PHD 1'
}, {
title: 'PHD 2'
}, {
title: 'PHD 3'
}, {
title: 'PHD 4'
}, {
title: 'SPRLTE'
}, {
title: 'STEEL1'
}, {
title: 'STEEL2'
}, {
title: 'STEEL3'
}, {
title: 'STEEL4'
}, {
title: 'STEEL5'
}, {
title: 'STEEL6'
}, {
title: 'SVL 01'
}, {
title: 'SVL 02'
}, {
title: 'SVL 03'
}, {
title: 'SVL 04'
}, {
title: 'SVL 05'
}, {
title: 'SVL 06'
}, {
title: 'SVL 07'
}, {
title: 'SVL 08'
}, {
title: 'SVL 09'
}, {
title: 'SVL 10'
}, {
title: 'SVL 11'
}, {
title: 'SVL 12'
}, {
title: 'SVL 13'
}, {
title: 'SVL 14'
}, {
title: 'SVL 15'
}, {
title: 'SVL 16'
}, {
title: 'SVL 17'
}, {
title: 'SVL 18'
}, {
title: 'SVLCUB'
}, {
title: 'TAMP 1'
}, {
title: 'TAMP 2'
}, {
title: 'WEEDER'
}]
}]
});
menu.on('select', function(e) {
ajax({ url: 'http://myserver/test/pebble/oldpebble.php?cell=' + e.item.title, type:'xml' }, function(data){
var istag = data.match(/<istag>(.*?)<\/istag>/)[1];
istag = istag.replace(/"/g, "\"");
var psname = data.match(/<psname>(.*?)<\/psname>/)[1];
psname = psname.replace(/"/g, "\"");
var psip = data.match(/<psip>(.*?)<\/psip>/)[1];
psip = psip.replace(/"/g, "\"");
var upcstatus = data.match(/<upcstatus>(.*?)<\/upcstatus>/)[1];
upcstatus = upcstatus.replace(/"/g, "\"");
var i2of5status = data.match(/<i2of5status>(.*?)<\/i2of5status>/)[1];
i2of5status = i2of5status.replace(/"/g, "\"");
var content = istag + "\n\nPrint Server\n" + psname + "\n" + psip + "\n" + "UPC - " + upcstatus + "\nI2of5 - " + i2of5status;
var detailCard = new UI.Card({
title:e.item.title,
body: content,
scrollable: true,
style: 'small'
});
detailCard.show();
});
});
menu.show();
});
Pebble.js streams the data of lists to the watch on demand. Six seconds sound like a lot and I have not seen that much delay but there is not much you can do short of re-building your app with the C SDK.