Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单页应用程序的脱机版本_Javascript_Java_Single Page Application - Fatal编程技术网

Javascript 单页应用程序的脱机版本

Javascript 单页应用程序的脱机版本,javascript,java,single-page-application,Javascript,Java,Single Page Application,使用java(和javascript)创建SPA所需的技术和工具、库和框架是什么 考虑由服务器a提供服务的应用程序。此服务器可能会脱机 我需要的是第二台服务器B上该应用程序的部分功能、只读版本,但完全可导航 服务器B只能提供静态文件:html、css、js和图像 服务器A可以访问服务器B,并可以根据需要定期向其推送数据 我的第二个要求是尽可能少地受到供应商锁定的影响,所以我应该尽可能少地使用框架 第三个要求是:在浏览器中,客户端不需要任何工具 请列出可能的技术,并在适用的情况下,至少列出一个工具

使用java(和javascript)创建SPA所需的技术和工具、库和框架是什么

考虑由服务器a提供服务的应用程序。此服务器可能会脱机

我需要的是第二台服务器B上该应用程序的部分功能、只读版本,但完全可导航

服务器B只能提供静态文件:html、css、js和图像

服务器A可以访问服务器B,并可以根据需要定期向其推送数据

我的第二个要求是尽可能少地受到供应商锁定的影响,所以我应该尽可能少地使用框架

第三个要求是:在浏览器中,客户端不需要任何工具


请列出可能的技术,并在适用的情况下,至少列出一个工具/框架/库,以便无论出于何种原因,如果它不符合我的要求,我可以搜索替代方法。

如果您接受任何客户端代码:

是的,最好的答案是服务人员

您可以阅读各种缓存技术

让你的网站离线访问的最简单的插件是

服务工作者是框架无关者,您可以在JavaScript中与所有框架一起使用,也可以不与框架一起使用

您将需要典型的后端(Java/PHP?)甚至静态html文件和JavaScript客户端代码

如果您不接受任何客户端代码并接受第三方

唯一的解决方案是使用像CloudFlare这样的代理—您的DNS将指向CloudFlare,它们将为您设置将要发生的事情

如果您不接受任何客户端代码,也不接受第三方
如果您希望您的解决方案完全如您所描述的那样,那么应该使用某种负载平衡器,如HAProxy(),它将您的流量路由到故障转移服务器。你可以在这里读到:

我是一名经验丰富的程序员(10年以上),所以请用相应的短语回答。我需要一些工具方面的关键词,因为我从来没有写过SPA,而且我的java已经生锈了,所以我不知道生态系统。从总体上说,java应用程序无论如何都可以在第一次访问时呈现任何页面,因为共享书签也应该从最终用户的角度出发。因此,我设想这样的情况:当数据库中的一篇文章发生更改时,服务器A会生成所有必需的文件,并将它们作为该文章的静态视图推送到服务器B,而没有任何SPA的迹象。谢谢您的回答。请阅读我现在的精炼问题。sw-precache似乎是一个节点模块,我的问题标记为java,问题也表示java,即:在正常情况下,其余回复由服务器a上的java返回。服务器B上没有任何服务器端技术。根据cloudflare或任何其他服务的不同,它就像所有供应商锁定之母,而不是选项。如果我误解了你的回答,请告诉我。让我们一起寻找一个好的解决方案。
sw precache
只使用节点进行开发,您可以将其与任何服务器技术结合使用。您也可以自己编写服务人员。但是,此选项要求有人至少访问您的页面一次。编辑了我的答案。因此,如果我理解正确,渲染出的页面将构建在客户端浏览器上(正常情况下),并在每次更改窗口位置时作为独立页面发送到服务器A(并且A可以将文件上载到B)<代码>软件预缓存由每个客户端的浏览器运行。或者我可以安排一个专门的用户在服务器a上,在无头浏览器中这样做。这些假设正确吗?不完全正确。在客户端选项中,您不需要“服务器B”。当用户进入您的站点时,服务人员可以告诉浏览器缓存特定资源(静态html、js、css)。然后,当用户再次进入您的站点时,您的站点将关闭,服务人员可以告诉浏览器使用缓存的静态页面。您还可以更新此文件(sw precache使用control sum验证其是否已更改),但用户显然需要在访问新资产时进入页面。