我在 Prado 2.1RC1 上运行了一个相对较旧的 webapp,我正在尝试通过添加一些不错的google 可视化图表来增强它。
在集成 google jsapi(依赖于 jquery)和 prado2.1 使用的旧库时出现了问题。
Prado 使用一些内置库(其中一些是base.js、dom.js、ajax.js等)+原型 1.4。
在我尝试集成教程示例的第一刻,我在 chrome javascript 控制台中记录了两个错误。
未捕获的 RangeError:base.js:524上的数组长度无效
未捕获的类型错误:未定义不是函数
查看base.js,我发现这些错误是由 shift 函数中的原型错误引起的(我认为),因为 shift 是这样实现的:
shift function() {
var result = this[0];
for (var i = 0; i < this.length - 1; i++)
this[i] = this[i + 1];
this.length--;
return result;
}
但是当 this.length==0 时,this.length-- 就会爆炸。
所以在修复了这个错误之后,我希望谷歌漂亮的图表会出现......但没有。javascript 控制台中没有引发错误,但我在应该附加谷歌图表的 div 中以红色背景呈现此文本:
数字不是函数
我对这个错误一无所知。我怀疑 webapp 所需的大量 javascript 库有些混乱。
考虑到我使用的是旧的、已弃用的、不受支持的 Prado 和 Prototype 版本,我知道情况并不是很好。但我非常喜欢 php 和这个框架。我真的不知道要花多少时间才能迁移到新的 Prado 版本来更新 javascript 库,我什至知道我是否能够做到这一点。也许你们中的一些有更多经验的人可以告诉我在这种情况下最好的事情是什么,或者我应该如何进行......
谢谢!!如果您需要有关问题的更多详细信息,请告诉我。