I have developed a point of sale system using MVC 4.The responsiveness and loading times on Windows and Mac is instant but on an iPad it takes 8-13 seconds to load a page or perform an action such as adding items to basket. To improve the speed of the web application I enabled compression in IIS and minified all my java script files I also used bundling to bundle the following .js files together which supposedly improves loading of pages as well:
- jquery-1.8.2.min.js
- knockout-2.2.0.js
- jquery.easing.1.3.js
- b.popup.min.js(used for displaying a modal popup only 6KB)
The other javascript files I use on pages are between 5KB and 15KB.After doing all this the application seems to be a few seconds quicker, but still takes unacceptably long(8-10 seconds).
Has anyone experienced similar performance issues on an iPad and how did you resolve it?Is there anything else I can do to improve performance?
I'm using Windows Server 2003 and IIS 6.0
Here's my bundle registration code:
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-1.8.2.min.js",
"~/Scripts/jquery.easing.1.3.js",
"~/Scripts/knockout-2.2.0.js",
"~/Scripts/common/common.min.js",
"~/Scripts/popup.min.js"
));
bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css"));
BundleTable.EnableOptimizations = true;
}
And this is where I call it on the master page:
@using System.Configuration
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<meta name="apple-mobile-web-app-capable" content="yes">
<title>Prestige SSC</title>
@Scripts.Render("~/bundles/jquery")
@RenderSection("scripts", required: false)
@Styles.Render("~/Content/css")
<script type="text/javascript">
var screenRefreshTime = '@ConfigurationManager.AppSettings["ScreenRefreshTime"].ToString()';
screenRefreshTime = parseInt(screenRefreshTime);
</script>
</head>
<body>
@RenderBody()
</body>
</html>