用于XPages的服务器端Javascript库(jQuery、下划线、Dojo)

用于XPages的服务器端Javascript库(jQuery、下划线、Dojo),jquery,node.js,dojo,underscore.js,xpages,Jquery,Node.js,Dojo,Underscore.js,Xpages,在XPages中,我们在服务器端编写Javascript。我们使用“相同”的客户端语言。然而,在客户端,我们可以使用很多很酷的库,比如jQuery、Dojo和下划线 我使用了服务器端自定义函数,例如,each方法: Object.prototype.each = function (callback) { for (var x in this) { if (this.hasOwnProperty(x)) { callback.call(this,

在XPages中,我们在服务器端编写Javascript。我们使用“相同”的客户端语言。然而,在客户端,我们可以使用很多很酷的库,比如jQuery、Dojo和下划线

我使用了服务器端自定义函数,例如,each方法:

Object.prototype.each = function (callback) {
    for (var x in this) {
        if (this.hasOwnProperty(x)) {
            callback.call(this, this[x]);
        }
    }
}
但是,这些客户端库已经提供了类似这样的帮助程序,还有很多其他帮助程序。如果我尝试在服务器端XPages中使用这些库,它们会失败,原因如下:

  • Dom操作
  • 全局变量
  • 窗口对象
  • SSJS XPage wierd错误:对“function[JavaScript Object]”类型的对象调用方法“call(Object)”时出错。
有人有这样的服务器端库吗?也许frontend Node.js开发人员已经解决了这个问题

任何人都会使用以下方法:

  • 地图
  • 减少
  • 还原光
  • 发现
  • 滤器
  • 在哪里
  • findWhere
  • 拒绝
  • 每一个
  • 一些
  • 包含
  • 援引
  • 马克斯
  • 肮脏的
  • 群比
  • indexBy
  • 倒计时
  • 洗牌
  • 样品
  • 托雷
  • 大小
  • 首先
  • 首字母
  • 最后
  • 休息
  • 紧凑的
  • 压扁
  • 没有
  • 联合
  • 交叉口
  • 差别
  • uniq
  • 拉链
  • 反对
  • 索引
  • lastIndexOf
  • 分类索引
  • 射程
  • 束缚
  • 宾德尔
  • 局部的
  • 回忆
  • 耽搁
  • 推迟
  • 节流阀
  • 去盎司
  • 一次
  • 之后
  • 包裹
  • 谱写

以下是一些下划线特性。我在服务器端js中发现了关于下划线的内容,但由于提到SSJS XPage wierd错误,我失败了:在“function[JavaScript Object]”类型的对象上调用方法“call(Object)”SSJS可以使用Java对象,这打开了一个服务器端库的大世界。有关示例,请参见


Google的Guava就是这样一个库。

SSJS可以使用Java对象,这为服务器端库打开了一个大世界。有关示例,请参见


谷歌的番石榴就是这样一个库。

5个月后我的回答是:这是我现在正在使用的SSJS库:

它为旧的Domino8.5.3的JavaScript填充了以下JavaScript方法:(我不知道IBMNotes9的JavaScript XSP版本)

  • Array.isArray
  • Array.prototype.indexOf
  • Array.prototype.lastIndexOf
  • Array.prototype.forEach
  • 数组,原型,一些
  • Array.prototype.every
  • Array.prototype.map
  • Array.prototype.reduce
  • Array.prototype.reduceRight
  • Array.prototype.filter
  • Function.prototype.bind
  • String.prototype.trim
  • 对象密钥
MDN(Mozilla开发者网络)的JavaScript多填充集合。MDN()中的Polyfill定义“Polyfill是一段代码,用于实现浏览器本机不支持的公共API”。这个文件可以在XPages SSJS(服务器端JavaScript)中使用,以填补Domino8.5.3JavaScript中的漏洞。这个文件也可以在客户端使用,以填充旧浏览器的js方法:IE9、IE8、IE7。如果在客户端使用此文件,请从第400行中删除代码。我在SSJS XPages中使用$.each函数的方式与jQuery.each()非常相似。我将它用作迭代器,甚至用于Java.util.Vector等Java对象


编辑1:警告现在(2014/11/09)XPages SSJS(至少在Domino8.5.3和9中)中的原型存在一个巨大的缺陷:

我5个月后的回答:这是我现在正在使用的SSJS库:

它为旧的Domino8.5.3的JavaScript填充了以下JavaScript方法:(我不知道IBMNotes9的JavaScript XSP版本)

  • Array.isArray
  • Array.prototype.indexOf
  • Array.prototype.lastIndexOf
  • Array.prototype.forEach
  • 数组,原型,一些
  • Array.prototype.every
  • Array.prototype.map
  • Array.prototype.reduce
  • Array.prototype.reduceRight
  • Array.prototype.filter
  • Function.prototype.bind
  • String.prototype.trim
  • 对象密钥
MDN(Mozilla开发者网络)的JavaScript多填充集合。MDN()中的Polyfill定义“Polyfill是一段代码,用于实现浏览器本机不支持的公共API”。这个文件可以在XPages SSJS(服务器端JavaScript)中使用,以填补Domino8.5.3JavaScript中的漏洞。这个文件也可以在客户端使用,以填充旧浏览器的js方法:IE9、IE8、IE7。如果在客户端使用此文件,请从第400行中删除代码。我在SSJS XPages中使用$.each函数的方式与jQuery.each()非常相似。我将它用作迭代器,甚至用于Java.util.Vector等Java对象


编辑1:警告现在(2014/11/09)XPages SSJS(至少在Domino8.5.3和9中)中的原型存在一个巨大的缺陷:

Mootools也会很酷:。但我担心在XPages中会有所不同。JavaScript库往往有两个用途:修复浏览器的缺陷和差异;以及通过您提到的小部件和便利功能来简化复杂行为的实现。因此,前半部分在服务器端是无用的。在XPages中,小部件通常通过组件提供,以尽量减少对客户端JavaScript的需求。如果您正在编写复杂的行为代码,那么应该用Java编写——为了运行时性能和长期可维护性。您关于Java性能更好的观点非常好。尽管如此,我还是认为有一个ssjs库会很有用,因为js中的许多特性都比较简单