【问题标题】:Updating Web App code without reloading it更新 Web 应用程序代码而不重新加载它
【发布时间】:2012-04-21 11:51:31
【问题描述】:

是否有任何方法或可能性更新应用程序代码并让客户在不重新加载应用程序/网站的情况下采用它?我的意思是更新实时应用程序代码,例如添加或删除功能。

对于全屏 Web 应用程序,iPad 每 24 小时请求一次用户许可,而对于原生应用程序则不会。一旦您授予权限,它就不会再次询问,但如果您重新加载应用程序(您通常在推送更新时必须这样做),它会再次询问是否已过 24 小时。

我们正在将 iPad 安装到出租车中,并希望使用地理位置数据跟踪城市周围的连接情况,但我们无法可靠地做到这一点,因为该应用会征求客人的许可。我们还想提供一些基于位置的功能,但我们做不到,因为如果一位客人说“不”,它将影响所有下一位客人,因为 iPad 只允许询问两次,然后你必须等待一段时间才能再次请求使用地理位置,

【问题讨论】:

  • 可能,但难度大,需要基础设施
  • “更新应用程序代码”是什么意思?
  • 你到底为什么要这么做?
  • 也许他和他的系统管理员不上...
  • 您不应该仅仅因为您认为没有必要这样做而对某事投反对票。我已经添加了解释,

标签: javascript web-applications


【解决方案1】:

我认为更新代码是指实时代码重新加载或更改页面上加载的模块而不更改它。

这将要求您拥有一个基础架构库,允许您重新加载或添加代码模块到您的应用程序。 ncore 允许这样做

接下来,您需要一个来自服务器或其他远程端点的通信通道,以将新模块或模块重新加载命令发送到客户端浏览器。

这个概念是你打开了一个 websocket 并且你发送了两个命令之一

  • 添加模块:url
  • 重新加载模块:名称

然后,浏览器中的应用会从 url 加载并添加该模块,或者重新加载该模块。

这基本上是在用户浏览器中远程控制应用程序的状态。

【讨论】:

  • 你在帮助这家伙制造无法维护的烂摊子
  • 谢谢,我正在考虑使用 Pusher 进行 websocket 连接,也许需要使用 AMD 的 require.js。
  • @PabloFernandez 这不是无法维护的混乱,它是一个非常优雅的概念,可以在运行时将应用程序的状态作为一组模块在任何客户端上远程操作
  • 我现在将您的答案标记为解决方案。非常感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 2013-05-19
  • 1970-01-01
  • 1970-01-01
  • 2013-10-31
  • 2020-12-13
  • 2018-10-14
  • 2014-06-17
  • 1970-01-01
相关资源
最近更新 更多