Websockets是完全矫枉过正的,但是你说你已经完成了另一部分应用程序......你的后端是什么?如果你喜欢C#,ASP.NET有很多选择(MVC4是我个人最喜欢的)。
在MVC中,你会在您的页面控制器,用于解释一些JSON从AJAX调用传递有点像这里面的一个动作:
public JsonResult FooData(int _id)
{
var dataContext = true;
if(_id == 7)
dataContext = false;
return Json(dataContext, JsonRequestBehavior.AllowGet);
}
...并在您的客户端,你会调用FooData方法像这样:
$.ajax({
url: "MyController/FooData",
data: { _id: obj.id },
dataType: 'json',
async: true,
success: ChangeImage
});
凡ChangeImage是一个JavaScript函数设置为你的Ajax调用的成功回调函数,所以它可能是这样的:
function ChangeImage(data) {
if(data == true)
document.getElementById('myImg').src = "red.jpg";
else
document.getElementById('myImg').src = "green.jpg";
}
这是短暂的,甜蜜的和重点。有一个学习曲线,但它是非常值得的时间和精力。我不能没有这个框架了!
编辑:忘了添加数据传递给ajax调用,现在修复!
编辑编辑:我没有添加if click check bool -> if true, set false -> send flag -> if flag == 'change' change color -> if click ... etc etc etc
的逻辑,因为这只是忙碌的工作。尽管如此,这已经足够让你满意了。
此切换是否需要影响当前浏览您的网站的所有用户,因此如果用户A单击切换,用户B立即看到效果?如果没有,那么websockets是矫枉过正的,你只需要一个发送ajax请求的点击事件。 –
凯文,不,它只是在每个用户,所以AJAX将是要走的路。谢谢回复。 – Doughy