Iphone 添加到Phonegap应用程序的额外脚本降低了性能nativeFetchMessages()

Iphone 添加到Phonegap应用程序的额外脚本降低了性能nativeFetchMessages(),iphone,html,cordova,kendo-ui,Iphone,Html,Cordova,Kendo Ui,使用Phonegap和Kendo Mobile UI,我的应用程序从通过Phonegap中的openDatabase访问的SQL db动态填充几个不同的列表视图。当我第一次启动应用程序并点击几个不同的列表时,应用程序会快速导航并填充视图。在屏幕上翻动15-20次之后,整个应用程序开始减速,并最终爬行到难以使用的地步 在iPhone4-5或模拟器上运行并没有什么区别 以全新的方式启动应用程序时,我会看到第一个列表视图。 检查web视图并查看文件列表,我可以看到index.html。 下面是普通文件

使用Phonegap和Kendo Mobile UI,我的应用程序从通过Phonegap中的openDatabase访问的SQL db动态填充几个不同的列表视图。当我第一次启动应用程序并点击几个不同的列表时,应用程序会快速导航并填充视图。在屏幕上翻动15-20次之后,整个应用程序开始减速,并最终爬行到难以使用的地步

在iPhone4-5或模拟器上运行并没有什么区别

以全新的方式启动应用程序时,我会看到第一个列表视图。 检查web视图并查看文件列表,我可以看到index.html。 下面是普通文件夹:脚本、图像、字体等

单击一个列表项将钻入另一个listview。一旦页面被更改并填充了新的listview,我现在注意到index.html父项下有一个新文件夹。一个名为:Extra Scripts的文件夹 在Extra Scripts文件夹中,我找到了一个没有子项的新index.html文件。单击它将打开其内容,1行:

cordova.require('cordova/exec').nativeFetchMessages()
通过再次更改视图并填充另一个列表视图,单击另一个项目可以进一步深入。现在在第三个屏幕上,我注意到Extra Scripts文件夹中有2个index.html文件

简而言之:只要显示这些视图及其列表,就会将一个新文件附加到额外的脚本。一旦这些文件的数量超过12个左右,设备就会变慢。我的应用程序中确实有其他视图不包含动态填充的列表视图,这些页面不会导致创建额外的脚本

我不确定Kendo Mobile ListView或Phonegap 2.4本身是否存在问题。我还将Phonegap升级到了2.9,但这并没有起到任何作用。 我还有另一个运行相同版本2.4的应用程序,它没有遇到任何这些问题,尽管它没有重点关注ListView,但是存在多个ListView,并且没有出现任何问题

这两个应用程序之间的另一个巨大区别是,坏掉的应用程序从phonegaps WebSQL数据库插件中填充数据,而工作的应用程序从联系REST服务的ajax调用中提取数据

下面是我如何创建和初始化列表视图的示例

<div data-role="view" id="equipmentPage" data-title="My Network" data-layout="mobile-tabstrip" >
    <ul data-role="listview" class="equipmentlist" data-source="equipmentDS" data-template="equipmentListItemTemplate">
    </ul>
</div>



 <script type="text/x-kendo-template" id="equipmentListItemTemplate">
   <div class="left wide liname">${name}</div>
   <div class="hiddenField" style='display: none'>${id}</div>
   <div class="right">
     <div class="hiddenField" style='display: none'>${id}</div>
     <div class="km-button badgeButton" id="badgeequipment_#=id#"></div>
     <button class="editEquipment" style="vertical-align: top" data-role="button" data-icon="compose"> </button>
   </div>
</script>


function equipmentliTemplateInit(){
  lockOverlay = true
  showLoadOverlay()
  console.log("equipmentInit")

  dbSelect("Select * from Equipment WHERE active = 1 and userId = " + ((temp.selected.friend > 0)?temp.selected.friend:temp.user.userID) + " AND siteId = " + temp.selected.site + "", function(tx, results){
    var equipment = new Array();
    for(var i = 0; i < results.rows.length; i++)
    {
      equipment.push(results.rows.item(i))
    }
    fillEquipment(equipment)
    lockOverlay =false
    hideLoadOverlay()
  })

}

function fillEquipment(equipment)
{
  equipment.sort(function(a, b){
    var nameA = a.name.toLowerCase();
    var nameB = b.name.toLowerCase();
    if(nameA < nameB)
      return -1
      if(nameA > nameB)
        return 1
        return 0;
  })
  /*$(".equipmentlist").data('kendoMobileListView').destroy()
  $(".equipmentlist").html("");
  $(".equipmentlist").kendoMobileListView({
    dataSource: kendo.data.DataSource.create({data: equipment }),
    template: $("#equipmentListItemTemplate").html()
  });*/
  equipmentDS.data(equipment)
  setBadges()
  if(equipment.length < 1)
    $(".equipmentlist").html("<li><center>There are no equipment to display.<br>Use the + button to add one.</center></li>");
  defineListItemActions()
}
我试图上传图片,但新用户无法上传