我正在尝试让 Amplify.js 发布/订阅以使用 2 个文件。
当代码是一个文件时,我可以让它工作,但当发布在一个文件中而订阅在另一个文件中时,我不能。
这是订阅和发布调用在同一个文件中的代码。这行得通。
<html>
<head>
<script type="text/javascript" src="./js/jquery-1.8.2.min.js"> </script>
<script
type="text/javascript" src="./js/amplify-1.1.2/amplify.min.js">
</script>
</head>
<body>
<H1>My amp pub/sub page</H1>
<script type="text/javascript">
alert("entering page");
amplify.subscribe("dataExample", function(param) {
alert("In the amplify.subscribe function,
param is: " + param.foo ); } );
alert("after line amplify.subscribe");
result = amplify.publish("dataExample", { foo: "bar" } );
alert ("After amplify.publish, result is " + result );
</script>
</body>
</html>
结果是它以预期的顺序打印出警报,如下所示:
'进入页面'
'在 amplify.subscribe 行之后'
'在 amplify.subscribe 函数中,参数是:bar'
'在 amplify.publish 之后,结果为真'
当我将订阅和发布放在单独的文件中时,不会调用 amplify.subscribe 函数。对于这个测试,我有两个浏览器(都是 Firefox)。我在一个浏览器上运行订阅,然后在另一个浏览器上发布。
这是订阅的代码(我只是删掉了发布部分)
<html>
<head>
<script type="text/javascript" src="./js/jquery-1.8.2.min.js"></script>
<script type="text/javascript" src="./js/amplify-1.1.2/amplify.min.js">
</script>
</head>
<body>
<H1>My amp sub page</H1>
<script type="text/javascript">
alert("entering page");
amplify.subscribe("dataExample", function(param) {
alert("In the amplify.subscribe function, param is: " +
param.foo ); } );
alert("after line amplify.subscribe");
</script>
</body>
</html>
发布代码(我删掉了订阅部分)
<html>
<head>
<script type="text/javascript" src="./js/jquery-1.8.2.min.js"></script>
<script type="text/javascript" src="./js/amplify-1.1.2/amplify.min.js">
</script>
</head>
<body>
<H1>My amp pub page</H1>
<script type="text/javascript">
alert("entering page");
result = amplify.publish("dataExample", { foo: "bar" } );
alert ("After amplify.publish, result is " + result );
</script>
</body>
</html>
我使用的是 firefox 版本 47.0.1
我在使用 Chrome 时遇到了同样的问题。
有人对此有任何想法吗?
有没有人对此有更深入的了解,比如
发布数据存储在哪里?多长时间?
以及如何查看它是否存在。
订阅者在哪里寻找数据?
发布订阅是否适用于两个文件?