【发布时间】:2014-01-10 00:30:17
【问题描述】:
在 XPages 中,我们在服务器端编写 Javascript。我们使用“相同”的客户端语言。然而在客户端,我们可以使用很多很酷的库,比如 jQuery、Dojo 和 Underscore。
我使用过服务器端自定义函数,例如 each 方法:
Object.prototype.each = function (callback) {
for (var x in this) {
if (this.hasOwnProperty(x)) {
callback.call(this, this[x]);
}
}
}
但是这些客户端库已经提供了这样的帮助程序以及更多。如果我尝试在服务器端 XPage 中使用这些库,它们会因以下几个原因而失败:
- Dom 操作
- 全局变量
- 窗口对象
- SSJS XPage 奇怪错误:在“函数 [JavaScript 对象]”类型的对象上调用方法“call(Object)”时出错
有人有这样的服务器端库吗?也许前端 Node.js 开发人员已经解决了这个问题。
任何人都使用以下方法:
- 每个
- 地图
- 减少
- reduceRight
- 找到
- 过滤器
- 在哪里
- 在哪里找
- 拒绝
- 每一个
- 一些
- 包含
- 调用
- 采摘
- 最大
- 分钟
- 排序依据
- groupBy
- indexBy
- countBy
- 随机播放
- 样本
- toArray
- 尺寸
- 首先
- 初始
- 最后
- 休息
- 紧凑
- 展平
- 没有
- 联合
- 十字路口
- 区别
- 独特的
- 压缩包
- 对象
- indexOf
- lastIndexOf
- 排序索引
- 范围
- 绑定
- 全部绑定
- 部分
- 备忘录
- 延迟
- 推迟
- 油门
- 去抖动
- 一次
- 之后
- 换行
- 撰写
这些是一些下划线功能。我在服务器端 js 中找到了关于 Underscore 的 link,但我因提到的 SSJS XPage 奇怪错误而失败:Error calling method 'call(Object)' on an object of type 'function [JavaScript Object]'
【问题讨论】:
-
Mootools 也很酷:David Walsh Mootools in Node.js。但恐怕在 XPages 中会有所不同。
-
JavaScript 库往往有两个目的:修复浏览器的缺陷和差异;并通过您提到的小部件和便利功能简化复杂行为的实现。因此,前半部分在服务器端是无用的。在 XPage 中,小部件通常通过组件提供,以最大限度地减少对客户端 JavaScript 的需求。如果您要编写复杂的行为代码,则应使用 Java 编写——为了运行时性能和长期可维护性。
-
有趣。您关于 Java 性能更好的观点非常好。我仍然认为拥有一个 ssjs 库会很有用,因为 js 中的许多功能比 Java 更简单,而且很多时候几毫秒的性能不是问题。
标签: jquery node.js dojo underscore.js xpages