javascript - 我应该如何为支持和不支持 javascript 的浏览器编写 Jquery Mobile 应用程序?

标签 javascript jquery jquery-mobile progressive-enhancement graceful-degradation

我正在尝试全神贯注于 jQuery Mobile。我的目标是构建一个非常快速的应用程序,其外观和感觉尽可能接近 native 应用程序(至少对于现代设备而言)。

我知道有两种在页面之间导航的方法:

  1. 将每个页面作为单独的页面加载,并使用常规 html anchor 链接到其他页面。

  2. 将所有(或许多)页面放在一个网页上,并通过 javascript($.mobile.changePage(方法)和类似的 api 函数在它们之间导航。

第一种方法应该适用于所有浏览器,但性能很差,因为每个页面转换之间存在延迟。

第二个看起来应该快得多,所以我肯定更喜欢这种方法。但是,如果没有 javascript 支持,那将如何适用于移动设备浏览器呢?它显然违反了 jQuery Mobile 为 C 级浏览器提供优雅降级体验的目标。

在我看来,我需要实现我的应用程序两次,一次针对支持 javascript 的浏览器进行优化,一次针对不支持 javascript 的浏览器进行优化?使用可能是另一种选择,但看起来更加困惑。

解决这个难题的推荐方法是什么?有什么我没有注意到的吗?

谢谢,

阿德里安

最佳答案

首先:你的point2是错误的。

参见 Local, internal linked "pages" in here并仔细阅读。一个链接href="#pageelementid"将工作得很好并且也将在任何支持 HTML4 的浏览器中工作 [可能需要 <a name="pageelementid">在某些情况下,我不再确定] 唯一的区别是所有页面都同时可见。

其次,如果您使用第 1 种方式,它看起来也会相当不错。是的,它会加载,但在支持 javascript 的浏览器中,它加载了 AJAX,并且页面之间没有令人讨厌的闪烁。此外 - 显示“正在加载”弹出窗口。

jQuery Mobile 应该可以让您使用一些纯粹而简单的 html 来创建一个应用程序,而无需任何 JS。 JQM 本身承担了页面的增强,使其看起来不错并使用了 AJAX。尝试创建一个可以在所有可能的浏览器中运行的应用程序(我的灵感:lynx)并为此使用 JQM 标记。您愿意编写的任何 javascript 都应该作为一种增强功能 - 让它变得更好而不是让它完全工作。

祝你好运!

关于javascript - 我应该如何为支持和不支持 javascript 的浏览器编写 Jquery Mobile 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4621576/

相关文章:

javascript - Backbone 新手 : How to get first model from collection?

javascript - html5 在多个页面上使用 Canvas 和脚本

javascript - React Native 中的逗号和解析错误

javascript - 使用 json 将 php 变量发送到 javascript

jquery - 同位素多排序,混合有上升和下降

asp.net-mvc-3 - asp.net mvc、jquery mobile、phonegap 架构最佳实践

jquery - 在文档准备好之前显示 html 页面

javascript - 根据编号创建行和列。动态出现的图像

jquery - 数据图标不显示

jquery-mobile - 淘汰赛、JQMobile 和生成可折叠集似乎不太正常