Javascript 每次ajax调用后,Chrome扩展都会重新执行main popup.html上的代码

Javascript 每次ajax调用后,Chrome扩展都会重新执行main popup.html上的代码,javascript,jquery,ajax,google-chrome-extension,websocket,Javascript,Jquery,Ajax,Google Chrome Extension,Websocket,我试图计算用户点击URL的次数 大多数状态都保存在服务器上 但是,当我将URL作为用户的输入并进行ajax调用以获得相应的计数时,它会重新执行整个脚本。基本上,通过重新执行sendPageOpen()函数来获取数据,从而在主体上过度写入整个数据。它通过ajax调用暂时写入数据,然后替换所有内容,因为它实际上是重新执行的 如果我从服务器发送更多消息,它将侦听并附加到主体(并且不重新执行),但每次在ajax调用后都会重新执行整个代码 虽然每次重新打开弹出窗口时,我都希望使用sendPageOpen(

我试图计算用户点击URL的次数

大多数状态都保存在服务器上

但是,当我将URL作为用户的输入并进行ajax调用以获得相应的计数时,它会重新执行整个脚本。基本上,通过重新执行sendPageOpen()函数来获取数据,从而在主体上过度写入整个数据。它通过ajax调用暂时写入数据,然后替换所有内容,因为它实际上是重新执行的

如果我从服务器发送更多消息,它将侦听并附加到主体(并且不重新执行),但每次在ajax调用后都会重新执行整个代码

虽然每次重新打开弹出窗口时,我都希望使用sendPageOpen()套接字侦听器获取数据,但我不希望它在发出ajax调用后重新执行整个代码

请忽略我重复的工作重新执行这么多次。我在拉扯头发

var socket = io.connect('http://127.0.0.1:3000');

var url = ""; 



    chrome.tabs.query({"active":true}, function(data){
    //alert("why");
    console.log(data[0].url);
    currentURL = data[0].url;
    sendPageOpen(url);
 });



$( document ).ready(function() {
console.log( "ready!" );


$('form').submit(function(){
    debugger;
    console.log("Running");
    var myurl = {'url' : currentURL,
                'msg' : $('#msg').val()
                }
    socket.emit('get URL', JSON.stringify(myurl));

    $('#body').append($('<li>').text($('#msg').val()));


    socket.on(currentURL, function(msg){
    // console.log(msg);

    $('#body').append($('<li>').text($('#msg').val()));


    });

});


});



function sendPageOpen(url){
// debugger;
  var page = {'url' : url
                };

  socket.emit('pageopen', JSON.stringify(page));


  socket.on(currentURL, function(msg){


  $('#body').append($('<li>').text(msg));


  });
// return false;
});
var socket=io.connect('http://127.0.0.1:3000');
var url=“”;
chrome.tabs.query({“active”:true},函数(数据){
//警惕(“为什么”);
console.log(数据[0].url);
currentURL=数据[0]。url;
sendPageOpen(url);
});
$(文档).ready(函数(){
console.log(“准备就绪!”);
$('form')。提交(函数(){
调试器;
控制台日志(“运行”);
var myurl={'url':currentURL,
'msg':$('#msg').val()
}
emit('geturl',JSON.stringify(myurl));
$('body').append($('li>').text($('msg').val());
socket.on(currentURL,函数(msg){
//控制台日志(msg);
$('body').append($('li>').text($('msg').val());
});
});
});
函数sendPageOpen(url){
//调试器;
变量页={'url':url
};
emit('pageopen',JSON.stringify(page));
socket.on(currentURL,函数(msg){
$('#body')。追加($('
  • ')。文本(msg)); }); //返回false; });
  • 缺少
    事件.preventDefault()
    $('form')。提交
    回调?很好,谢谢。在使用uber cool JS框架之后,我认为jquery是理所当然的。