如何使用已有的spring MVC框架实现基于浏览器的Web应用程序

cha*_*vsn 5 html5 spring-mvc css3 jquery-mobile

我们将实现基于浏览器的移动应用程序.我们有在Spring MVC上运行的Web应用程序,我们需要使用相同的业务逻辑,并需要使用HTML5,CSS3和jquery Mobile重新实现前端.

请告诉我如何开始以及哪些工具可能有用的步骤.我是这类项目的新手.

kri*_*ath 2

有很多事情你需要遵循。为了便于理解,我们假设您网站的 url 是whackedup.com

为您的服务器端构建一个前端,但要明智地选择!

您必须为服务器端代码构建响应式/移动就绪的前端。您可以使用使用 REST API 的 Web 服务公开 Web 应用程序的功能。这样你的代码就不会被复制。但是,您应该小心您的移动应用程序中需要包含的内容。包括绝对必要的功能。无论如何,其他功能都可以从 Web 应用程序访问。正如一位智者曾经说过的那样,“为某样东西添加新功能并不难,难的是决定省略它”

可以考虑的移动框架:

免责声明:这完全是我的偏好,不要因为我不喜欢其他框架而阉割我。我将这些称为框架,以便更容易解决它们。我知道它们不是框架。

在移动开发方面,您需要一个框架来让您的工作变得更轻松。是的,您可以使用良好的 HTML5,但这会影响您的开发时间来构建在应用程序中使用的可视组件(如轮播、滑块等)。因此,通常建议使用框架,并且您最终总是会使用以下其中一种

  1. Twitter 的 BootStrap
  2. jQuery 移动
  3. 煎茶触摸

如果您想构建适应移动屏幕的桌面网站,Bootstrap 将是您的第一选择。我个人会使用 jQuery Mobile,因为:

  1. 它依赖于 jQuery
  2. 它有很棒的文档。真的,他们太棒了。
  3. 它响应迅速,这意味着它可以在平板电脑和手机上运行。
  4. 它支持多种设备。

您可以在以下位置找到有关 jQM 的优质资源:

  1. 堆栈溢出的jquery-mobile标签也可以尝试该jqm标签
  2. jQuery 的学习中心jQM 演示中心
  3. 这是 noupe 上的一个示例应用程序,您可以尝试掌握它的窍门。

也就是说,在其网站本身上学习 jQuery Mobile 总是更好,因为他们总是倾向于教授最新版本的 jQM。

重定向至移动网站

在您选择的框架中构建完应用程序后,您必须重定向从移动设备使用whackedup.com 的用户。这是通过使用用户代理来完成的。根据维基百科

用户代理是代表用户运行的软件(软件代理)。

这将告诉您用户登录网站的设备/浏览器。可以通过navigator.userAgentJS中的方法来访问。这是一个演示。通常对于 Android 设备,用户代理如下所示:

Mozilla/5.0(Linux;Android 4.0.3;HTC One X Build/IML74K)AppleWebKit/535.19(KHTML,如 Gecko)Chrome/18.0.1025.133 Mobile Safari/535.19

使用此信息,您可以根据以下信息确定该设备是否是 Android 设备/iOS 设备:

navigator.userAgent.indexOf("Android") != -1 //will return true if accessed on an android device
Run Code Online (Sandbox Code Playgroud)

这样,您可以将其作为if循环的条件并进行重定向,可能重定向到m.whackedup.com有关用户代理的完整列表,请查看此列表。

使用缓存来提高性能

为了提高性能,您可以将localStorage数据存储在浏览器的缓存中,而不是再次调用服务器来获取该数据。这是学习API的好资源localStorage

希望这有帮助!

编辑 - 回答您的问题

Q1:您建议 jqueryMobile 是 HTML5 的替代品(真的很困惑,jquery 用于验证,它只是 javascipt)

HTML5不像 HTML4 那样是一种标记语言。它只是一个组件提供商。它提供了像 Canvas(字面上的 flash 替代品)这样的组件以及许多类型的<input>标签和 API,比如localStorage. 您会发现单独使用 HTML5 来构建移动应用程序很困难。没有人说这是不可能的,但它很麻烦jQuery Mobile 并不是 HTML5 的替代品,它构建在 HTML5 的基础上,使其变得更好。

也就是说,您认为 jQuery Mobile只为您提供 JS 的想法是错误的。虽然 jQuery 是一个 JavaScript 库,但它的弟弟 jQuery Mobile 也是一个可视化库。jQuery Mobile 提供了大量 css 和 JavaScript,因此样式设计对您来说变得更容易。

概括

  1. jQuery Mobile 并不是 HTML5 的替代品,jQM 增强了 HTML5 提供的组件。请访问此网站亲自查看
  2. jQuery Mobile 不仅仅是 JavaScript,它还是一个可视化库,您可以根据需要对其进行主题化。

Q2:我们的spring mvc项目没有使用任何注释或者没有REST API。那么您是否建议更改代码以支持 REST API?

答:这不是必需的,但我确实给出了一个建议,让您的代码适应这两种情况,即针对 Web 应用程序和移动应用程序。否则,您将在两个环境中重复代码,这是很糟糕的。如果您的 Web 应用程序和移动应用程序文件要驻留在一起(在同一项目中),则您的移动应用程序和 Web 应用程序可以共享您的 Spring MVC 代码库。

概括

  1. 我只是建议您可以使用带有 REST API 的服务。
  2. 如果您的移动应用程序和 Web 应用程序要相同,那么重用 Web 应用程序的服务器端代码总是比为移动设备重新创建它更好。这样你就不会重复自己。