Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AJAX还是socket.io?_Javascript_Jquery_Ajax_Sockets_Websocket_Socket.io - Fatal编程技术网

Javascript AJAX还是socket.io?

Javascript AJAX还是socket.io?,javascript,jquery,ajax,sockets,websocket,socket.io,Javascript,Jquery,Ajax,Sockets,Websocket,Socket.io,我目前正在制作一个脚本,其工作原理如下: 单击按钮时,按钮旁边的旋钮应插入一个值。这必须实时完成。 所以,现在我想知道我应该用什么来做这个。我做了一些研究,提出了ajax或socket.io,但哪个更好 一些代码: <input class="knob" value="0" readonly data-width="80%"> <div class="button"> <a class="md-btn md-btn-success">Click me<

我目前正在制作一个脚本,其工作原理如下: 单击按钮时,按钮旁边的旋钮应插入一个值。这必须实时完成。 所以,现在我想知道我应该用什么来做这个。我做了一些研究,提出了ajax或socket.io,但哪个更好

一些代码:

<input class="knob" value="0" readonly data-width="80%">

<div class="button">
<a class="md-btn md-btn-success">Click me</a>
</div>

点击我
旋钮动画:

<input class="knob animated" value="0" readonly data-width="80%" rel="<?php echo $number; ?>">

<script>
       $('.knob').each(function () {

           var $this = $(this);
           var myVal = $this.attr("rel");
           $this.knob({});

           $({
               value: 0
           }).animate({

               value: myVal
           }, {
               duration: 2000,
               easing: 'swing',
               step: function () {
                   $this.val(Math.ceil(this.value)).trigger('change');

               }
           })

       });
</script>
答案:

使用Smart,您可以尝试实时模拟。否则就是出路

根据我回答中的一条评论,您可能对Javascript框架感兴趣

WebSockets是一种先进的技术,它使打开 用户浏览器与服务器之间的交互式通信会话 服务器。使用此API,您可以向服务器发送消息并接收消息 事件驱动的响应,而无需轮询服务器以获得答复

看看这个例子,它一定会帮助你开始

var wsUri=“ws://echo.websocket.org/”;
var输出;
函数init(){
输出=document.getElementById(“输出”);
testWebSocket();
}
函数testWebSocket(){
websocket=新的websocket(wsUri);
websocket.onopen=函数(evt){
onOpen(evt)
};
websocket.onclose=函数(evt){
onClose(evt)
};
websocket.onmessage=函数(evt){
onMessage(evt)
};
websocket.onerror=函数(evt){
onError(evt)
};
}
功能开启(evt){
写屏(“连接”);
doSend(“网岩”);
}
函数onClose(evt){
写屏(“断开”);
}
消息函数(evt){
writeToScreen('响应:'+evt.data+'');
websocket.close();
}
函数onError(evt){
writeToScreen('错误:'+evt.data);
}
函数doSend(消息){
writeToScreen(“已发送:+消息”);
发送(消息);
}
功能写入屏幕(消息){
var pre=document.createElement(“p”);
pre.style.wordWrap=“断开单词”;
pre.innerHTML=消息;
输出.appendChild(pre);
}
addEventListener(“加载”,init,false)
WebSocket测试
var wsUri=“ws://echo.websocket.org/”;
var输出;
函数init(){
输出=document.getElementById(“输出”);
testWebSocket();
}
函数testWebSocket(){
websocket=新的websocket(wsUri);
websocket.onopen=函数(evt){
onOpen(evt)
};
websocket.onclose=函数(evt){
onClose(evt)
};
websocket.onmessage=函数(evt){
onMessage(evt)
};
websocket.onerror=函数(evt){
onError(evt)
};
}
功能开启(evt){
写屏(“连接”);
doSend(“网岩”);
}
函数onClose(evt){
写屏(“断开”);
}
消息函数(evt){
writeToScreen('响应:'+evt.data+'');
websocket.close();
}
函数onError(evt){
writeToScreen('错误:'+evt.data);
}
函数doSend(消息){
writeToScreen(“已发送:+消息”);
发送(消息);
}
功能写入屏幕(消息){
var pre=document.createElement(“p”);
pre.style.wordWrap=“断开单词”;
pre.innerHTML=消息;
输出.appendChild(pre);
}
addEventListener(“加载”,init,false)
WebSocket测试

你知道socket.io是WebSocket的高级抽象,WebSocket具有自动回退到长轮询(comet)的功能,不是吗?我不确定我会推荐socket.io(或一般的socket)给有PHP代码的人…@dandavis,我在这里或标签中没有看到任何PHP代码,可能你需要一个更大的屏幕,它被部分切断;)
“>
是的,你可以用php做websockets,但有消息告诉我OP很难让它工作…@dandavis,啊:D——我很好奇你为什么不推荐sockets。如果你想在聊天中解释一下,我很乐意帮你想想