如何从头开始创建小部件平台

时间:2009-05-13 07:58:25

标签: widget platform

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

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

我们应该使用什么框架?我对RoR非常熟练,对Java / .Net很好,但我不知道在rails中这样做是否容易,因为我看不出它会像通常的Web应用程序那样。

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

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

5 个答案:

答案 0 :(得分:1)

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

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

摩托罗拉还提供了自己的Android AppWidget,但它不是开源的。

答案 1 :(得分:0)

你究竟想做什么?

您的网站是新的吗?或者它是否已经存在于某个环境中?

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

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

第三方开发者可以提供上面提到的html块,其中包含脚本标签,以提供他们想要的任何功能。

答案 2 :(得分:0)

我想我的问题是:

  • 小部件是什么意思,

  • “From Scratch”是什么意思?

如果通过“从头开始”你的意思是你不想仅仅修改以前存在的小部件,我会首先选择符合你的规范(jquery,dojo,aria等)的javascript框架,然后看看它们是否存在尽可能伸展它们。 (这是假设您不介意小部件是开源的。此外,您可以弥补任何缺乏可访问性或不认为这是一个问题。)

我不会依赖服务器端来输出代码,保存更改以及加载窗口小部件的已保存数据。如果您已经需要ajax将交互从客户端传递到服务器,那么为什么要停止小部件,使服务器关注小部件的其他机制呢?

我不会使用Java,但出于同样的原因,NSherwin会这样做。这不是我的强项。但我也认为,我们正在超越对编译器和成熟应用程序的依赖,以便在Web上执行操作。 Java将在可预见的未来拥有它,但是当我们的浏览器(和开发人员!)能够以更少的开销更快地完成工作时,我们不需要依赖它(或Flash)。 (更不用说这可以帮助实现可访问性和可用性。想想手机不需要特殊的应用来观看Facebook或Twitter!)

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

但是,如果你想要的是一个小部件供访客玩pac-man,或者设计他们梦想的家庭平面图,或者某些真正的数学/图形重,我会向那些比我知道更多的人鞠躬致敬的Java /闪存。我想即使在这种情况下,即使在这种情况下我也可以敲鼓,但是今天收到更接近的东西并不值得花时间。

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

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

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

我对小部件和网络应用程序的看法。希望它有所帮助。

答案 3 :(得分:0)

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

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

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


如果您想从头开始编写自己的框架,即使是现在的在线版本availbale也能让您对如何进行操作有很好的了解。

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

全部都在JSWAF的代码中。

请发送关于JSWAF的评论,特别是如果你发现一些关于它的蠢事。

干杯, JRH。

答案 4 :(得分:0)

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