我创建了使用MVC 4.0,WebServices,RestFul,SQLServer 2008 R2,jQuery Mobile(一页应用程序),AJAX体系结构的数据驱动的Web应用程序。
当用户单击“按名称搜索”>“浏览名称”时,这将引入表用户(以及其他几个数据查找表)中的所有数据。
该应用程序旨在在Retina显示器以及普通显示器(仅一张大尺寸图像)上使用,并在html中调整其大小。
问题在于,此搜索有时可能需要10秒钟才能返回大约400条记录,但是通过使用URI,它仅需要大约2条记录。这是正常现象吗,懒惰加载可以提供帮助吗?我如何在下面的AJAX中实现这一点?
AJAX:
function getConsultants() {
$.ajax({
type: 'GET',
async: false,
url: 'http://31.222.187.42/hca-consulting/Farm/users',
//url: 'json/get_consultants.txt',
dataType: 'json',
success: function (users) {
hcaConsultants = users;
},
});
};
我认为这是您遇到的问题:
初始页面加载量为13.1MB(轻松,老虎!)。显然,这需要解决。通过优化器运行所有PNG和JPEG。这是Visual Studio的附加组件。有鉴于此,在许多PC上,浏览器进程对RAM的使用将大打折扣。Chrome对我来说是250MB,Opera则是650MB。这是一个繁重的页面,初始页面加载时有171个请求。真的很高。考虑将sprites也用于图像,尽可能多地合并,性能差异惊人。请求数量越高,页面的效率就越低。
您是否真的需要预加载所有这些图像?绝对要考虑您提到的惰性加载器或其他图像加载器。
调用浏览名称时,HTTP堆栈上的请求数最多增加到548个单独项目,最大达到14.3MB(但是所有图像链接都已断开,因此我建议,一旦将它们放置到位,它就会当时的大小为30 MB以上,对于潜在的移动(网络或安装?)应用程序来说显然是不可接受的。
您可能还希望考虑将jQuery模板化以加快将这些记录传递到DOM的速度。另外,您还可以实现滚动加载,例如Waypoint插件,它的最小长度为8kb,因此,当它们向下滚动时,更多的JSON结果会在浏览器中显示;一次处理的记录越少,浏览器内的效率和响应速度就会越高。
您将需要重,重的缓存在这里,如果你正在提供这种通过网络而不是作为安装的应用程序,张开双臂拥抱它。还可以考虑在构建时通过VS post build事件和我的英雄Douglas Crockford的JSMin将所有自己的Javascript捆绑和最小化为一个文件,或使用框架内置的捆绑。另外,您的库的CDN。
的确如此,您的页面加载速度如此之慢的原因是它在其资源的负担之下越来越,因此为什么当直接请求时,您的api的JSON会如此迅速地返回。
这是一个很棒的网站,可用于比较您的页面速度和Yslow得分,以下是该报告以及针对您网站的建议,以获取其他提示和技巧。响应速度和感知速度对于这些类型的应用程序至关重要,因此我为您加油,使其跻身世界一流之列。
希望这对您的应用有所帮助,并祝您好运。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句