标签:jquery javascript cordova jquery-mobile performance
我已经通过这个网站以及其他许多人寻找有关JQuery,JQuery Mobile和Phonegap的性能提示.我在1个HTML文件中有8个data-role =“page”页面,在另一个HTML文件中有另一个页面,用于加载Facebook for Phonegap Build插件文件.我正在使用JQuery 1.9.1,JQuery Mobile 1.3.0和带有ICS的Trio Stealth Pro 9.7平板电脑和带有Froyo的LG Optimus V手机的Phonegap Build.我发现了许多提示,但在我的用户体验审查之后,由于页面加载和按钮推送无响应,我的应用程序在Android上被认为是不可接受的.
我必须同意.第一次通过应用程序,根据简单的控制台工具,每个页面加载大约需要3700ms.这是第二次到页面的大约1900ms,这对我来说是可以的.但是,每次重新加载应用程序时,这将重置为3700ms.我只希望每次进行的DOM索引/搜索/ JS编译都可以缓存,或者我可以中断所有JQuery后端进程,因为我没有在UI组件之外使用它.我已禁用AJAX导航.我已经尝试禁用页面转换,但发现$.mobile.transitionFallbacks.*非常有用,我没有看到完全禁用转换的任何好处.我只使用事件作为尝试明确打开和关闭加载图标.我真的不使用任何其他JQuery Mobile.不过,我的DOM大小是1125个对象.
如果我无法解决这些页面加载问题,我将不得不为Android和iOS进行本地化,而且我不期待Objective C …
这是我到目前为止所做的:
>页眉加载:
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
<title>Title</title>
<link href="jquery-mobile/mine.css" rel="stylesheet" type="text/css"/>
<link href="jquery-mobile/jquery.mobile.structure-1.3.0.min.css" rel="stylesheet" type="text/css"/>
<script src='jquery-mobile/fastclick.js' type='application/javascript'></script>
<script src="jquery-mobile/jquery-1.9.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).bind("mobileinit", function(){
$.mobile.ajaxEnabled = false;
$.mobile.pushStateEnabled = false;
$.mobile.touchOverflowEnabled = false;
$.mobile.defaultPageTransition = 'slide';
$.mobile.defaultDialogTransition = 'pop';
$.mobile.transitionFallbacks.slide = 'none';
$.mobile.transitionFallbacks.pop = 'none';
$.mobile.buttonMarkup.hoverDelay = 0;
$.mobile.phonegapNavigationEnabled = true;
});
</script>
<script src="jquery-mobile/jquery.mobile-1.3.0.min.js" type="text/javascript"></script>
<script src="jquery-mobile/mine.js" type="text/javascript"></script>
<script src="phonegap.js"></script>
>我已经删除了HTML中的所有onClick.
>我已缓存所有JQuery调用.
var $activityCheckboxes = $('#activityCheckboxes');
>我将JQuery调用限制为仅通过ID引用.
>我限制了对localStorage的所有调用.
>我尽可能地限制所有String操作,例如concat等我仍在使用=而不是推送数组并加入它因为我发现的数据表明=实际上更快.
>我已经缩小了我的CSS和Javascript.我即将尝试HeadJS延迟加载(并行加载).
>我正在使用FastClick.
>就像我上面说的,我已经尝试禁用所有页面转换.
>我使用event.preventDefault()关闭所有事件;返回false;除了pagecreate之外.
这是我的活动:
$(document).delegate("#page", "pagecreate", function () {
validateValues();
validateActivitiesInstructions();
validateAddNewInstructions();
updateSettings();
});
$(document).delegate("#page", "pageshow", function () {
$.mobile.loading('hide');
event.preventDefault();
return false;
});
$(document).delegate("#about", "pageshow", function () {
$.mobile.loading('hide');
event.preventDefault();
return false;
});
$(document).delegate("#explanation", "pageshow", function () {
$.mobile.loading('hide');
event.preventDefault();
return false;
});
$(document).delegate("#settings", "pageshow", function () {
$.mobile.loading('hide');
event.preventDefault();
return false;
});
window.addEventListener('load', function () {
new FastClick(document.body);
event.preventDefault();
return false;
}, false);
我还能做些什么来减少初始页面加载时间并可能增加按钮响应速度?我应该将8页分成单独的HTML文件吗?任何帮助将不胜感激!谢谢!
解决方法:
好吧,我已经尝试了我能想到的每一个排列和上面的内容以及head.js的使用似乎是我今天要做的绝对最好的.谢谢大家的帮助.
标签:jquery,javascript,cordova,jquery-mobile,performance 来源: https://codeday.me/bug/20190629/1328476.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。