title: Safari Mobile (Ipad) doesn't seem to cache my telerik and Microsoft CDN resource files used by my aspx page
body: <p>I have an aspx web page with various Telerik RadControls on it and each time this page is loaded, Safari mobile seems to download all the resource files again - for example the following files are downloaded on each page request to an ipad - nothing seems to get cached as it would be on other non-mobile browsers.</p>
  
  <pre><code>http://aspnet-scripts.telerikstatic.com/ajaxz/2010.3.1109/Common/Navigation/NavigationScripts.js
  http://aspnet-scripts.telerikstatic.com/ajaxz/2010.3.1109/PanelBar/RadPanelBarScripts.js
  http://aspnet-scripts.telerikstatic.com/ajaxz/2010.3.1109/Input/TextBox/RadInputScript.js
  http://aspnet-scripts.telerikstatic.com/ajaxz/2010.3.1109/ListBox/RadListBoxScripts.js
  http://aspnet-scripts.telerikstatic.com/ajaxz/2010.3.1109/ComboBox/RadComboBoxScripts.js
  http://aspnet-scripts.telerikstatic.com/ajaxz/2010.3.1109/Grid/RadGridScripts.js
  </code></pre>
  
  <p>This is over 100K of javascript being passed down each time even though the CDN resources are set to cache and have ETAGS.</p>
  
  <p>I've rigged up fiddler to both the ipad and a laptop running IE/FF/Safari each time the laptop browser is caching the resource files above and the ipad isn't.</p>
  
  <p>I think this is why my app performs notably slower on the Ipad although it may be the slow javascipt parsing on the Ipad as well...</p>
  
  <p>Has anyone else had this problem? Am i missing something obvious here? </p>
  
  <p>Thanks.</p>
  
  <p>EDIT</p>
  
  <p>I am monitoring the iPad traffic on the laptop by making the laptop an http proxy for the iPad.</p>
  
  <p><strong>Extra Info from fiddler:</strong></p>
  
  <p>Fiddler v2.3.0.0, laptop results from IE8, iPad vers. 3.2.2. </p>
  
  <p>From my laptop, If I go to <a href="http://demos.telerik.com/aspnet-ajax/listbox/examples/default/defaultcs.aspx" rel="nofollow">http://demos.telerik.com/aspnet-ajax/listbox/examples/default/defaultcs.aspx</a></p>
  
  <p>and after click "First Look" a few times the following in in fiddler:</p>
  
  <pre><code>#   Result  Protocol    Host        URL                         Body    Caching     Content-Type    Process Comments    Custom  
  1   200 HTTP    demos.telerik.com   /aspnet-ajax/listbox/examples/default/defaultcs.aspx    54,608  private     text/html; charset=utf-8    iexplore:6172           
  2   200 HTTP    demos.telerik.com   /aspnet-ajax/Common/CodeViewer.js.aspx  5,534   private     text/javascript; charset=utf-8  iexplore:6172           
  4   200 HTTP    demos.telerik.com   /aspnet-ajax/listbox/examples/default/defaultcs.aspx    54,608  private     text/html; charset=utf-8    iexplore:6172           
  5   200 HTTP    demos.telerik.com   /aspnet-ajax/Common/CodeViewer.js.aspx  5,534   private     text/javascript; charset=utf-8  iexplore:6172           
  7   200 HTTP    demos.telerik.com   /aspnet-ajax/listbox/examples/default/defaultcs.aspx    54,608  private     text/html; charset=utf-8    iexplore:6172           
  8   200 HTTP    demos.telerik.com   /aspnet-ajax/Common/CodeViewer.js.aspx  5,534   private     text/javascript; charset=utf-8  iexplore:6172           
  10  200 HTTP    demos.telerik.com   /aspnet-ajax/listbox/examples/default/defaultcs.aspx    54,608  private     text/html; charset=utf-8    iexplore:6172           
  11  200 HTTP    demos.telerik.com   /aspnet-ajax/Common/CodeViewer.js.aspx  5,534   private     text/javascript; charset=utf-8  iexplore:6172           
  </code></pre>
  
  <p>If I do the same on my iPad the following is recorded by fiddler:</p>
  
  <pre><code>#   Result  Protocol    Host    URL                             Body    Caching     Content-Type    Process Comments    Custom  
  1   200 HTTP    demos.telerik.com   /aspnet-ajax/listbox/examples/default/defaultcs.aspx    54,380  private     text/html; charset=utf-8                
  2   200 HTTP    aspnet-scripts.telerikstatic.com    /ajaxz/2010.3.1317/Common/Navigation/NavigationScripts.js   7,856   public, max-age=31536000  Expires: Sun, 17 Jan 2021 15:05:25 GMT    application/x-javascript                
  3   200 HTTP    aspnet-scripts.telerikstatic.com    /ajaxz/2010.3.1317/ComboBox/RadComboBoxScripts.js   16,238  public, max-age=31536000  Expires: Sun, 17 Jan 2021 15:05:25 GMT    application/x-javascript                
  4   200 HTTP    aspnet-scripts.telerikstatic.com    /ajaxz/2010.3.1317/Ajax/Ajax.js 7,509   public, max-age=31536000  Expires: Sun, 17 Jan 2021 15:05:25 GMT    application/x-javascript                
  5   200 HTTP    aspnet-scripts.telerikstatic.com    /ajaxz/2010.3.1317/ToolBar/RadToolBarScripts.js 13,372  public, max-age=31536000  Expires: Sun, 17 Jan 2021 15:05:25 GMT    application/x-javascript                
  6   200 HTTP    demos.telerik.com   /aspnet-ajax/Common/CodeViewer.js.aspx  5,534   private     text/javascript; charset=utf-8              
  8   200 HTTP    demos.telerik.com   /aspnet-ajax/listbox/examples/default/defaultcs.aspx    54,380  private     text/html; charset=utf-8                
  9   200 HTTP    aspnet-scripts.telerikstatic.com    /ajaxz/2010.3.1317/Common/Navigation/NavigationScripts.js   7,856   public, max-age=31536000  Expires: Sun, 17 Jan 2021 15:05:25 GMT    application/x-javascript                
  10  200 HTTP    aspnet-scripts.telerikstatic.com    /ajaxz/2010.3.1317/ComboBox/RadComboBoxScripts.js   16,238  public, max-age=31536000  Expires: Sun, 17 Jan 2021 15:05:25 GMT    application/x-javascript                
  11  200 HTTP    aspnet-scripts.telerikstatic.com    /ajaxz/2010.3.1317/ListBox/RadListBoxScripts.js 13,199  public, max-age=31536000  Expires: Sun, 17 Jan 2021 15:05:25 GMT    application/x-javascript                
  12  200 HTTP    demos.telerik.com   /aspnet-ajax/Common/CodeViewer.js.aspx  5,534   private     text/javascript; charset=utf-8              
  13  200 HTTP    aspnet-scripts.telerikstatic.com    /ajaxz/2010.3.1317/ToolBar/RadToolBarScripts.js 13,372  public, max-age=31536000  Expires: Sun, 17 Jan 2021 15:05:25 GMT    application/x-javascript                
  15  200 HTTP    demos.telerik.com   /aspnet-ajax/listbox/examples/default/defaultcs.aspx    54,380  private     text/html; charset=utf-8                
  16  200 HTTP    aspnet-scripts.telerikstatic.com    /ajaxz/2010.3.1317/Common/Navigation/NavigationScripts.js   7,856   public, max-age=31536000  Expires: Sun, 17 Jan 2021 15:05:25 GMT    application/x-javascript                
  17  200 HTTP    aspnet-scripts.telerikstatic.com    /ajaxz/2010.3.1317/ComboBox/RadComboBoxScripts.js   16,238  public, max-age=31536000  Expires: Sun, 17 Jan 2021 15:05:25 GMT    application/x-javascript                
  18  200 HTTP    aspnet-scripts.telerikstatic.com    /ajaxz/2010.3.1317/ToolBar/RadToolBarScripts.js 13,372  public, max-age=31536000  Expires: Sun, 17 Jan 2021 15:05:25 GMT    application/x-javascript                
  19  200 HTTP    aspnet-scripts.telerikstatic.com    /ajaxz/2010.3.1317/ListBox/RadListBoxScripts.js 13,199  public, max-age=31536000  Expires: Sun, 17 Jan 2021 15:05:25 GMT    application/x-javascript                
  20  200 HTTP    aspnet-scripts.telerikstatic.com    /ajaxz/2010.3.1317/Ajax/Ajax.js 7,509   public, max-age=31536000  Expires: Sun, 17 Jan 2021 15:05:25 GMT    application/x-javascript                
  21  200 HTTP    demos.telerik.com   /aspnet-ajax/Common/CodeViewer.js.aspx  5,534   private     text/javascript; charset=utf-8      
  </code></pre>
  
  <p>EDIT 2:</p>
  
  <p>I have tried exactly the same test as above again today and noticed that:</p>
  
  <p>1) The IPad <strong>is now</strong> caching the javascript</p>
  
  <p>2) Telerik demos <strong>are not using the CDN</strong> but they were yesterday! (see results below compared to results above)</p>
  
  <pre><code>#   Result  Protocol    Host        URL                         Body    Caching Content-Type    Process Comments    Custom  
  1   200 HTTP    demos.telerik.com   /aspnet-ajax/listbox/examples/default/defaultcs.aspx    53,036  private     text/html; charset=utf-8                
  2   200 HTTP    demos.telerik.com   /aspnet-ajax/Telerik.Web.UI.WebResource.axd?compress=1&amp;_TSM_CombinedScripts_=%3b%3bTelerik.Web.UI%2c+Version%3d2010.3.1317.40%2c+Culture%3dneutral%2c+PublicKeyToken%3d121fae78165ba3d4%3aen-US%3a9506cff2-3a86-46c5-b869-6ba1478f3c27%3a1c2121e%3ae8945d51%3af4636213%3ac531f12c%3a4d471440%3af7131199%3ac17ca3a3  10,599  public, max-age=31533429  Expires: Sat, 18 Feb 2012 10:06:39 GMT    text/css                
  3   200 HTTP    demos.telerik.com   /aspnet-ajax/Telerik.Web.UI.WebResource.axd?_TSM_HiddenField_=RadScriptManager1_TSM&amp;compress=1&amp;_TSM_CombinedScripts_=%3b%3bSystem.Web.Extensions%2c+Version%3d4.0.0.0%2c+Culture%3dneutral%2c+PublicKeyToken%3d31bf3856ad364e35%3aen-US%3a8f393b2b-3315-402f-b504-cd6d2db001f6%3aea597d4b%3ab25378d2%3bTelerik.Web.UI%3aen-US%3a9506cff2-3a86-46c5-b869-6ba1478f3c27%3a16e4e7cd%3af7645509%3a24ee1bba%3af46195d3%3a1e771326%3aaa288e2d%3a628ebdd0%3a9cdfc6e7%3aed16cbdc%3a2bef5fcc%3aa7e79140   160,387 public, max-age=31533429  Expires: Sat, 18 Feb 2012 10:06:40 GMT    application/x-javascript                
  4   200 HTTP    demos.telerik.com   /aspnet-ajax/Common/CodeViewer.js.aspx  5,534   private     text/javascript; charset=utf-8              
  10  200 HTTP    demos.telerik.com   /aspnet-ajax/listbox/examples/default/defaultcs.aspx    53,032  private     text/html; charset=utf-8                
  11  200 HTTP    demos.telerik.com   /aspnet-ajax/Common/CodeViewer.js.aspx  5,534   private     text/javascript; charset=utf-8              
  14  200 HTTP    demos.telerik.com   /aspnet-ajax/listbox/examples/default/defaultcs.aspx    53,032  private     text/html; charset=utf-8                
  15  200 HTTP    demos.telerik.com   /aspnet-ajax/Common/CodeViewer.js.aspx  5,534   private     text/javascript; charset=utf-8              
  18  200 HTTP    demos.telerik.com   /aspnet-ajax/listbox/examples/default/defaultcs.aspx    53,032  private     text/html; charset=utf-8                
  19  200 HTTP    demos.telerik.com   /aspnet-ajax/Common/CodeViewer.js.aspx  5,534   private     text/javascript; charset=utf-8              
  </code></pre>