2

プリント サーバーとプリンターが動的に稼働しているかどうかを確認し、それを Pebble にフィードバックするために、職場のサーバーへのインターフェイスを作成しました。機能は問題ありませんが、私が抱えている問題はメニューにあります。メニューを読み込んで下にスクロールすると、突然アイテムが表示されなくなります。約 6 秒後に表示されます。上下スクロールも同様です。メニューオプションはたくさんありますが、メニューに6つのアイテムがあっても十分です。

これは単に処理能力または pebble.js スクリプトの制限ですか、それとも何か間違っていますか?

-- 更新 -- 今後の参考のために、Pebble を再起動すると、レンダリングが大幅に高速化されました。新人ミス…

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(/&quot;/g, "\"");
      var psname = data.match(/<psname>(.*?)<\/psname>/)[1];
          psname = psname.replace(/&quot;/g, "\"");
      var psip = data.match(/<psip>(.*?)<\/psip>/)[1];
          psip = psip.replace(/&quot;/g, "\"");
      var upcstatus = data.match(/<upcstatus>(.*?)<\/upcstatus>/)[1];
          upcstatus = upcstatus.replace(/&quot;/g, "\"");
      var i2of5status = data.match(/<i2of5status>(.*?)<\/i2of5status>/)[1];
          i2of5status = i2of5status.replace(/&quot;/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();
});

4

1 に答える 1

1

Pebble.js は、リストのデータをオンデマンドでウォッチにストリーミングします。6 秒は長いように聞こえますが、それほど大きな遅延は見られませんでしたが、C SDK を使用してアプリを再構築する以外にできることはあまりありません。

于 2015-02-11T07:03:04.403 に答える