2

比如,我可以用 HTML5 编写一个业务强度应用程序,模仿我们当前的系统,其中包含许多高度交互的网格、自定义树等。

我们有一个用 C# WinForms 编写的很好的工作系统,其中部分在 WPF 中完成,并且最近开始为 iPad 编写一个自定义应用程序,通过 WCF 与我们的主要服务器主机进行通信。我们现在有一个用 C# 编写的非常快速的自定义网格,它可以通过 MonoTouch 编译为 Objective C,还有一个很酷的交互式饼图。

现在我的老板希望为 Android 构建一个版本,我在想我们是否真的不应该花时间创建一个可以在 iPad 和 Android 等效设备上运行的 HTML5 应用程序。

事情是 - 拿一个网格 - 我在 iPad 上的网格很快(可重复使用的单元格等) - 我如何从 html5 中的“数据集”类型源创建网格?我真的需要创建大量标签然后将它们提交给浏览器吗?像 jqwidgets 这样的第三方小部件是答案吗?

谢谢

4

3 回答 3

2

这有点轶事,但我的经验是 HTML5/JavaScript 在移动设备上还不够快(在 2012 年),特别是如果您要显示大量数据,尤其是您希望通过交互功能实现快速响应时间。再给它一年,如果随着移动设备的不断发展,这种说法变得过时,我不会感到惊讶。

移动 Web 开发目前肯定有其用途,例如,如果您想使用单个代码库针对大多数设备;如果您没有足够的开发资源并且愿意接受非本地体验;如果您没有本地开发所需的语言等方面的经验。

鉴于您已经完成了 iPhone 应用程序的工作,我的拙见是继续使用原生 Android 应用程序可能会更好——此时您将获得一个响应速度更快的应用程序来完成大约相同的工作量。

如何从 html5 中的“数据集”类型源创建网格?

根据网格包含的内容,您可以使用普通的旧 HTML 表格或使用 CSS 样式的其他元素的组合来完成。但实际上还有更多考虑因素——例如,它是否需要在小屏幕(例如,手机)或更大的屏幕(平板电脑)上工作。通常,您无法在小屏幕上真正适应整个网格,因此您最终得到的 UI 不再是真正的网格。您可以查看jQuery Mobile等移动 JavaScript 框架,了解他们是如何做到的,甚至可以考虑在您自己的应用程序中使用该框架。

于 2012-08-31T16:14:10.533 回答
0

各种 JavaScript 框架(例如 JQuery 和 Dojo)都具有相当高质量的移动设备特定小部件。看看http://dojotoolkit.org/features/mobilehttp://jquerymobile.com/

这些与使用 ObjectiveC 和 Java 开发的本机应用程序有多接近?不完美,但也许足够好。您还可以在同一个应用程序中使用原生和 HTML 的组合,一些页面原生一些 HTML。我正在使用 IBM 的 Worklight 做这种事情,但是我愿意,我为 IBM 工作 ;-) 不管具体产品如何,我确实看到人们采用这种方法。

除了可移植性之外,使用 HTML 格式拥有大部分应用程序的另一个好处是无需通过应用程序商店即可交付更新版本 - 这提高了功能交付的敏捷性。

于 2012-08-31T16:09:39.937 回答
0

作为证据,我想说很多 Windows 8 的应用程序只是封装了 JS/CSS/HTML,并带有一些 Microsoft 提供的 API 以允许访问硬件/文件系统。

我不认为他们已经走到了使 Excel 2013 基于 JS 的地步……但是,话虽如此,他们已经走到了允许开发人员使用数据——这些小程序都将构建在“html5”之上(同样使用 MS-Office JS API)。

这不是一条容易走下去的路——人们希望 jQuery 成为这类事情的救星。如果您想拼凑一个解决方案,这正是 jQuery 不是您想要的。例如:

$(".table_cell").click(function () { alert(/*whatever*/); });

人们认为 jQuery 正在分配一个委托人来监听对任何包含class="table_cell".

这真的不是它在做什么。它循环遍历每一个,并直接为每一个附加一个事件侦听器。人们怀念的正是这些小东西——像 Twitter 这样的人,他们不费心缓存对元素的引用,因为 jQuery 很容易将这些东西组合在一起。因此,您可以让 JS 始终接触(或作用于)数十或数百个单独的元素。

这对任何人都不好。

jQuery 一点也不差——它非常有帮助,作为一种低级结构,可以帮助避开浏览器的差异。它的一些插件也可以。我不能保证它们都是对所有事情的高性能答案。但是一些插件创建者了解如何维护响应良好且性能良好的程序。

哪些适合您的确切需求?谁知道,除了你。

他们会表现得完美而迅速吗?当然,这取决于很多不同的事情。

来自 C#,您可能会查看AngularJS之类的东西。Angular 本身使用 jQuery 的内部版本来解决 jQuery 解决的一些低级问题。但它允许数据绑定和非常简单的视图模板。 Hammer.js也是一个非常不错的手势跟踪库。

不过,我建议从那里构建您自己的框架,如果您希望它按照您希望的方式完成。除了你之外,没有人知道你的需求是什么,并且试图把东西塞进鞋盒,因为它是可用的,并不总是解决方案,不管不同的公司可能会怎么想......

您可以将大部分节点工作留给 Angular,您可以将手势感应留给 Hammer,您可以从 jQuery-lite 中提取一些其他基础知识(安装在 Angular 中的简洁 jQ,如果您没有jQ 在您的网站上)或 jQ 本身...

但它们只是工具而不是答案。

如果您缓存对元素的引用,而不是一遍又一遍地查询它们,委托事件,在 DOM 外(如果需要,在克隆节点上)进行大的结构更改,并且不要尝试处理JS 作为一种传统的重继承语言,你要注意如何以及何时使用 AJAX(调用的数量/频率与数据的大小——倾向于更少的调用)。

于 2012-08-31T16:31:44.673 回答