2

我们想为特定网站创建一个小部件平台。

我找不到任何关于这样做的文章,但我现在需要的是有人指出我正确的方向。

我们应该使用什么框架?我精通 RoR,对 Java/.Net 也很熟悉,但我不知道在 rails 中执行此操作是否容易,因为我看不出这与通常的 Web 应用程序有何不同。

许多小部件平台允许第三方开发人员使用 Javascript。这有多容易,我们是否必须创建一个解释器或类似的东西?

我们应该遵循什么样的架构?我们是否将小部件存储在数据库中?

4

5 回答 5

1

看一下Java Portlet规范。Protlets 似乎正是您正在寻找的。至少您应该阅读技术概述。有许多可用的 portlet 容器(框架)。

如果您真的必须从 stratch创建所有内容,请查看Android AppWidget框架。Android 是 Google 的一款用于移动设备的开源操作系统。它们在操作系统代码(小部件容器)和第三方代码(小部件提供者)之间完全分离 - 如果您必须处理不受信任的用户提供的代码,这非常有用。

摩托罗拉还为手机提供了自己的Widget 框架,但它不是开源的。

于 2009-05-18T19:27:26.100 回答
0

你到底想做什么?

你的网站是新的吗?还是它已经存在于某个环境中?

我建议您可以从 xml 模板构建您的页面,并使用某种自定义 sax 解析器来用服务器上的 html 块替换对小部件的引用,您可以使用 xslt,但我怀疑调用任意使用 sax 解析器编写代码。

我喜欢 java,因为那是我的空间,但我确信 ruby​​ 和 .net 可以胜任简单的 dom 操作。

第 3 方开发人员可以提供上述 html 块,包括脚本标签以提供他们想要的任何功能。

于 2009-05-15T08:51:11.907 回答
0

我想我的问题是:

  • 小部件是什么意思,以及

  • “从头开始”是什么意思?

如果“从头开始”你的意思是你不想只对以前存在的小部件进行皮肤,我会首先选择一个符合你的规范(jquery、dojo、aria 等)的 javascript 框架,然后看看它们是否可以延伸为只要你能推动他们。(这是假设您不介意小部件是开源的。此外,您可以弥补任何缺乏可访问性或不认为这是一个问题。)

除了输出代码、保存更改和为小部件加载保存的数据之外,我不会依赖服务器端。如果您已经需要 ajax 将交互从客户端传递到服务器,为什么要停止小部件让服务器关注小部件的其他机制?

我不会使用 Java,但出于同样的原因 NSherwin 会。这不是我的强项。但我也认为,我们正在超越对编译器和成熟应用程序的依赖,让事情在网络上执行。Java 将在可预见的未来占有一席之地,但是当我们的浏览器(和开发人员!)可以更快地完成工作并且开销更少时,我们不需要依赖它(或 Flash,就此而言)。(更不用说这有助于提高可访问性和可用性。想想不需要特殊应用程序即可查看 Facebook 或 Twitter 的手机!)

基于我的第一个问题,所有这些都发生了一些变化:小部件是什么意思?如果您指的是约会日历、相框或倒数计时器(上帝,我很无聊,抱歉),请记住我上面所说的一切。使用 php 或 RoR 生成代码,通过良好的框架使用 js 使其打勾,并使用 ajax 到 xml 到 MySQL 来处理事件处理之外的交互。

但是如果你想要的是一个供游客玩吃豆人的小部件,或者设计他们梦想中的家庭平面图,或者一些真正的数学/图形重的东西,那么我会向那些比我更了解 Java/Flash 的人鞠躬. 我认为即使在那些情况下我也可以敲鼓的那一天即将到来,但是今天即使是接近的东西也不值得花工时。

这是我目前正在努力解决的问题,可能有助于完善您的需求......

让我们想象一个像西南航空丁这样的小部件!桌面小部件,但在网络上。它会在出现好交易时提醒您。时间很重要,因为名额有限。您是否让浏览器每半秒查询一次服务器以查看是否有更新?您是否设置了一个数据库,该数据库在更新时向服务器发送一个 crontask 以运行更新 xml 文件的脚本,该脚本更容易让浏览器检查文件大小的更改?所有这一切都是为了让用户可以在这里 DING 而不必点击刷新(这可能会在服务器上产生一个效率较低的相同版本)?

我有一个 js 脚本,它每半秒查询一次活动页面的 cookie,以便用户在即将被踢出时收到警告。我确信有一些事件侦听器可能会消除循环的需要,但是当服务器上发生某些事情并且浏览器只是挂出时,是否有等价物?

只是我对小部件和网络应用程序的想法。希望对您有所帮助。

于 2009-05-19T02:21:02.707 回答
0

您正在寻找http://jswaf.googlecode.com/

我是该工具的合著者……但是在线提供的版本已经过时了。

我的家用电脑上有一个更好的版本,但不幸的是,在接下来的两个月里我无法访问它:(


如果你想从头开始编写自己的框架,即使是现在在线可用的版本也会让你很好地了解如何去做。

是的,您是对的:要创建运行时小部件,您需要使用解释器。幸运的是,您可以直接使用浏览器中提供的 javascript 解释器。

这一切都在 JSWAF 的代码中。

请务必发送有关 JSWAF 的评论,特别是如果您发现它有些愚蠢。

干杯,jrh。

于 2009-05-19T09:37:11.283 回答
0

不久前,我为我的项目创建了自己的小部件集。这还不错。另一方面,它不如 ExtJS,所以我最近终于转向了这个小部件集。出于您的目的,请查看 Ext-GWT 小部件库。

于 2009-05-21T14:46:51.083 回答