Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 性能:列出多个图像的应用程序的最佳实践_Android_Cordova_Jquery Mobile - Fatal编程技术网

Android 性能:列出多个图像的应用程序的最佳实践

Android 性能:列出多个图像的应用程序的最佳实践,android,cordova,jquery-mobile,Android,Cordova,Jquery Mobile,我正在用JQuery Mobile和Phonegap构建开发一个应用程序。还有一个包括图片的列表。此列表动态填充。但是我没有在这个列表上使用JQM标记,因为它会更慢 这是一个包含264个项目的列表,而且还在增加。 对于平板电脑设备,图像的高度必须至少为250像素 目前,所有这些图像都随应用程序一起提供。 我应该决定从服务器加载映像吗? 如果是,滚动列表会更慢吗 谢谢最好随应用程序一起发送图像,因为图像不需要从服务器请求,因此加载速度更快。从服务器加载项目会给你更多的自由,因为你不必重新部署应用程

我正在用JQuery Mobile和Phonegap构建开发一个应用程序。还有一个包括图片的列表。此列表动态填充。但是我没有在这个列表上使用JQM标记,因为它会更慢

这是一个包含264个项目的列表,而且还在增加。 对于平板电脑设备,图像的高度必须至少为250像素

目前,所有这些图像都随应用程序一起提供。 我应该决定从服务器加载映像吗? 如果是,滚动列表会更慢吗


谢谢

最好随应用程序一起发送图像,因为图像不需要从服务器请求,因此加载速度更快。从服务器加载项目会给你更多的自由,因为你不必重新部署应用程序来添加项目

为了获得更好的性能,最好的解决方案是按需加载图像。换句话说,一次只加载x数量的图像,一旦用户向下滚动到最后一个图像,则加载下一组图像

因此,在您的场景中,最佳实践是在用户滚动时按需加载图像(延迟加载)

您可以使用类似或的方法来实现这一点


希望这有帮助

最好随应用程序一起发送图像,因为图像不必从服务器请求,因此加载速度更快。从服务器加载项目会给你更多的自由,因为你不必重新部署应用程序来添加项目

为了获得更好的性能,最好的解决方案是按需加载图像。换句话说,一次只加载x数量的图像,一旦用户向下滚动到最后一个图像,则加载下一组图像

因此,在您的场景中,最佳实践是在用户滚动时按需加载图像(延迟加载)

您可以使用类似或的方法来实现这一点

希望这对您有所帮助,将类似的东西与动态加载列表(如)结合使用应该是您想要的

无论是从本地数据加载还是从服务器加载,我建议将图像存储在外部数据库中,因为您可以使用它的限制要少得多。

使用类似的东西,并结合使用动态加载列表(如)应该是您要找的


无论是从本地数据还是从服务器加载,我建议将图像存储在外部数据库中,因为您可以使用它的限制要少得多。

对于平滑滚动,您可以尝试,这与图像或列表项的数量无关

它允许DOM中有限数量的元素,因此页面性能不会降低。检查这把小提琴

var$el=$(“#我的无限容器”);
var listView=new infinity.listView($el);
// ... 添加新内容时:
var$newContent=$(“helloworld

”); append($newContent); // ... 要从列表中删除项目,请执行以下操作: var listItems=listView.find('.my items'); 对于(var index=0,length=listItems.length;index
要实现平滑滚动,您可以尝试,这与图像或列表项的数量无关

它允许DOM中有限数量的元素,因此页面性能不会降低。检查这把小提琴

var$el=$(“#我的无限容器”);
var listView=new infinity.listView($el);
// ... 添加新内容时:
var$newContent=$(“helloworld

”); append($newContent); // ... 要从列表中删除项目,请执行以下操作: var listItems=listView.find('.my items'); 对于(var index=0,length=listItems.length;index
如果你否决了某个答案,请说明为什么你否决了该答案,因为我不清楚为什么这个答案对你的问题没有帮助。是的,你的答案投了赞成票,只是为了让一切回到0:)我选择了一个混合解决方案,我将图像与应用程序一起发布,但我可以将图像添加到服务器,应用程序将检测到图像并从服务器加载它们。因此,我不必每次添加新图像时都进行重新部署。如果你否决了一个答案,请说明为什么你否决了这个答案,因为我不清楚为什么这个答案对你的问题没有帮助。是的,你的答案被否决了,只是为了让一切恢复到0:)我选择了一个混合解决方案,我将图像与应用程序一起发布,但我可以将图像添加到服务器,应用程序将检测到图像并从服务器加载它们。因此,我不必每次都重新部署我必须添加的新图像。因此,有人只是否决了一切。我很感激你的反馈,我想改进我的答案。嗨,谢谢你的回答,但我使用的是JQM和Phonegap暗示的HTML(混合应用程序)。所以有人否决了一切。我非常感谢您的反馈,我想改进我的答案。您好,谢谢您的回答,但我正在使用JQM和Phonegap暗示的HTML(混合应用程序)。很棒的插件!谢谢有了infinity.js,我的列表滚动得更快。嗨@Sareskaph,你能帮我解决这个问题吗:我想我需要一个关于如何使用过滤复选框“刷新”列表的例子。很棒的插件!谢谢使用infinity.js,我的列表滚动得更快。嗨@Sareskaph,你能帮我解决这个问题吗:我想我需要一个关于如何使用过滤复选框“刷新”列表的示例。
var $el = $('#my-infinite-container');
var listView = new infinity.ListView($el);

// ... When adding new content:

var $newContent = $('<p>Hello World</p>');
listView.append($newContent);

// ... To remove items from a list:

var listItems = listView.find('.my-items');
for(var index = 0, length = listItems.length; index < length; index++) {      
    listItems[index].remove();
}