我正在尝试将旧的 cometd javascript 包装器和测试客户端(是 1.3.x)更新到较新的 comet 2.5.1 javascript 实现。我有所有的依赖项,浏览器可以找到它们,但我在 Firebug 的控制台中遇到错误(见下文)
我的 HTML 的头部如下:
<head>
<title>CometD Tester</title>
<link rel="stylesheet" type="text/css"href="style/style.css" />
<script type="text/javascript" src="org/cometd/Cometd.js"></script>
<script type="text/javascript" src="org/cometd/AckExtension.js"></script>
<script type="text/javascript" src="org/cometd/ReloadExtension.js"></script>
<script type="text/javascript" src="jquery/jquery-1.9.0.js"></script>
<script type="text/javascript" src="jquery/jquery.cookie.js"></script>
<script type="text/javascript" src="jquery/jquery.cometd.js"></script>
<script type="text/javascript" src="jquery/jquery.cometd-reload.js"></script>
<script type="text/javascript" src="js/myCometd.js"></script>
</head>
所有这些都是由浏览器找到的。看着Cometd.js
我看到以下内容:
org.cometd.Cometd = function(name)
{
....
}
那么这不是定义组织吗?请注意,控制台中的任何错误都不是来自Cometd.js
. 否则我看不到“org.cometd”的其他定义。如果有人可以帮助我,我将不胜感激。我正在使用 Tomcat 7,以下是目录结构:
谢谢。
更新 - 进一步测试
我将标题减少为:
<head>
<title>CometD Tester</title>
<link rel="stylesheet" type="text/css"href="style/style.css" />
<script type="text/javascript" src="org/cometd/Cometd.js"></script>
</head>
并从 index.html 中删除所有 JS。现在唯一包含的 JS 是来自 comet.org 的 Cometd.js。仍然存在相同的错误......来自该脚本的第一行:
org.cometd.Cometd = function(name)
不知道我在这里错过了什么。
编辑 - 添加 jquery.cometd-reload.js 这是文件的内容。看起来它是来自 cometd 库的“重新绑定”功能,以使用 jquery 代替(?)。我在 JS 中的速度不够快,无法调试这个(我真的是 C++ 开发人员)。
(function($)
{
function bind(org_cometd, cookie, ReloadExtension, cometd)
{
// Remap cometd COOKIE functions to jquery cookie functions
// Avoid to set to undefined if the jquery cookie plugin is not present
if (cookie)
{
org_cometd.COOKIE.set = cookie;
org_cometd.COOKIE.get = cookie;
}
var result = new ReloadExtension();
cometd.registerExtension('reload', result);
return result;
}
if (typeof define === 'function' && define.amd)
{
define(['org/cometd', 'jquery.cookie', 'org/cometd/ReloadExtension', 'jquery.cometd'], bind);
}
else
{
bind(org.cometd, $.cookie, org.cometd.ReloadExtension, $.cometd);
}
})(jQuery);