具有离线功能的单页应用程序的客户端 JavaScript 库?

软件推荐 网络应用 javascript 离线
2021-10-18 02:02:38

我正在寻找一个 JavaScript 或CoffeeScript库或框架:

  • 将为单页应用程序(SPA) 生成页面 - 也就是说,它不仅仅是一组用于服务器生成的 HTML 的华丽标记。
  • 将处理应用程序无法看到服务器的时间,方法是将修改后的数据保存在本地存储中,缓存服务器请求并在服务器可用时发送它们。
  • 具有至少与以下之一一致的编程范式:jQuery、CoffeeScript、JavaScript(甚至是 PHP、Ruby、Python、C#,但这些可能不太可能。我认为Google Web Toolkit可能会做我所追求的,但我不是 Java 程序员,也无意成为一名 Java 程序员)。
  • 在 Windows Phone 8 和当前的 Firefox 和 Chrome 浏览器上运行良好。

请注意,这只是一个关于前端的问题:客户端,在浏览器上。服务器上的后端超出范围。

你知道 JavaScript 是如何创建DOM对象的吗?以及一个网页如何只是一堆 DOM 对象。以及如何在用户看到的任何给定网页上,一些 DOM 对象可以由客户端上的 JavaScript 创建,一些在服务器上创建并提供给客户端。很多 SPA 几乎所有的 DOM 对象都是在客户端用 JavaScript 创建的。这就是我所追求的。

我可以在 vanilla JavaScript 中做到这一点:但是,对于 JavaScript 框架或库所做的任何事情,这都是正确的。我正在寻找一个让事情变得更容易的图书馆。


语境

我曾经是免费、自由、开源gtd-php应用程序的开发人员。它现在在GitHub 上,现在作为废弃软件。我仍然每天使用该应用程序。用户体验不是那么舒服,但功能正是我以“完成任务”的方式管理任务所需要的。我想到如果我回去开发其中的东西,我真正想做的事情是彻底改造前端,并在客户端浏览器中生成它,通过JSON与服务器交换数据。因此这个问题。

1个回答

AngularJS是一个流行的框架,最近很受欢迎。它是一个 MVC 框架,可以真正帮助组织项目。您可以通过Egghead.io上的视频了解很多相关信息

以下是它如何满足您的要求:

  • 为 SPA 生成页面

    • 使用正确的标记,它可以为您生成大量内容。例如,如果您想根据 JavaScript 对象中的内容创建项目列表。您可以使用 a <div ng-repeat="listItem in list"></div>,它会为列表中的每个项目创建一个元素。如果支持的 JavaScript 对象(模型)发生变化,它将自动为您更新 DOM。
  • 将处理服务器无法连接的时间

    • 有很多方法可以做到这一点,但 Angular 提供了一个$http可用于与服务器通信的对象。$http对象有缓存请求的选项。默认设置非常强大,但如果您发现它不能满足您的需求$cacheFactory,您可以在其中自定义。如果您不想自定义自己的内容,还有其他项目,例如angular-data可以为您处理很多事情。
  • 具有类似于 jQuery、CoffeScript、JavaScript 等的编程范式。

    • 一切都是用 JavaScript 编写的(HTML 模板除外),或者如果您愿意,也可以使用 CoffeeScript 编写。包含一个轻量级版本的 jQuery,称为 jqLit​​e,它具有完全相同的编程语法。
  • 在 Windows Phone 8 和当前的 Firefox 和 Chrome 浏览器上运行良好。

    • Angular 建立在现代网络之上。它专为当前浏览器而设计,同时考虑到未来的浏览器。

关于 Angular,有一些重要的事情需要了解。Angular 有一个蓬勃发展的社区,总是乐于提供帮助,所以一定要问问题。有时文档可能有点令人生畏;但是,团队和社区正在努力改进它。该项目非常活跃,大约每 1-2 周发布一次新版本,因此有时功能可能会更改,但我的建议是选择一个版本并坚持下去,直到您看到切换的价值。