我目前在创建网络应用时遇到问题。我们正在创建的所有页面都可以通过一个获取发布数据并将其显示在页面上的函数来查看。我遇到的问题是,在加载内容时,套接字的相应JS不会执行。
我相信这是因为我们正在使用:
socket.on("connect")
并且连接事件只会触发一次,但我不确定如何解决这个问题。
我正在使用的JS的一个例子如下所示。
function runJs(){
var url = document.location.pathname.toLowerCase();
if(url == '/account/create'){
var socket = io();
//once the socket connects, make calls
socket.on("connect", function(){=
socket.on("accountCreated", function(data){
if(typeof data.data.error !== "undefined"){
jQuery("#error").text(data.data.error);
}
else{
//account creation was successful and we're logged in.
//redirect to the home page
window.location.href = "/";
}
});
});
}
当执行另一个函数(这里没有发布,因为它不重要)时,它更新页面HTML并运行上面看到的runJs()函数。我已通过console.log确认该函数确实被调用,但socket.on中的代码不会执行,除非重新加载页面。
有没有人对我如何解决这个问题有任何想法?