代码之家  ›  专栏  ›  技术社区  ›  Alec Jacobson

防止缓存的iPhone webapp重新加载(滚动到顶部)

  •  11
  • Alec Jacobson  · 技术社区  · 14 年前

    我有一个iphonewebapp,它使用缓存清单离线工作。我将webapp添加到我的主屏幕,使用它(比如说滚动到页面上的某个位置),然后返回主屏幕。 当我再次打开应用程序时,有一小会儿我看到了我以前的位置(在那个页面上的滚动位置),但随后应用程序“重新加载”,我被滚动到主页的顶部。有没有办法防止这种“重装”?这种情况甚至在飞行模式下也会发生(即所有东西都在缓存中工作)。

    4 回复  |  直到 14 年前
        1
  •  3
  •   Glenn Maynard    14 年前

    搜索“apple touch startup image”以设置真实的加载图像。

        2
  •  2
  •   James Koch    14 年前

    我在这里挣扎的是,如果我使用常规的Safari,而不是在“支持apple移动web应用程序”模式下运行,那么这个应用程序实际上似乎在“内存”中停留的时间更长。在后一种情况下,只需按下home按钮,然后切换回应用程序的任务就会导致重新加载。在Safari中做同样的事情通常不会重新加载。因此,我更糟糕的是使用“苹果移动网络应用程序功能”。

        3
  •  1
  •   JakeCigar    14 年前

    这个 加载 处理程序启动,好像这是您第一次来到页面。

    这个 处理程序是清除旧内容的关键。

    我喜欢为返回我的web应用程序的用户提供其他内容。

    window.onunload=function(){
      document.getElementsByTagName('body')[0].className+=' unloading'
    }
    

    让CSS做一些肮脏的工作来隐藏主体的大部分并显示其他内容。

    (这个答案不依赖于jQuery或其他框架)

        4
  •  0
  •   Espen    14 年前

    //有载

    window.scroll(0,0);
    

    为确保启动时不显示旧内容,我在页面中使用此选项:

    window.addEventListener('unload',function(){$('body').hide();});