Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.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
Asp.net 我可以将HTML5WebSocket用于通常使用AJAX完成的任务吗?_Asp.net_Html_Updatepanel_Websocket - Fatal编程技术网

Asp.net 我可以将HTML5WebSocket用于通常使用AJAX完成的任务吗?

Asp.net 我可以将HTML5WebSocket用于通常使用AJAX完成的任务吗?,asp.net,html,updatepanel,websocket,Asp.net,Html,Updatepanel,Websocket,我刚开始研究。我想知道我是否可以用WebSocket而不是ASP.NET UpdatePanels来更新网页的所有内容,或者这会不会太过分了 WebSocket可以替代AJAX吗?这就是WebSocket的用途吗 大多数示例都是用于双向聊天的演示。但是,如果我想单击一个按钮而不是回发来更新网格,我可以用WebSocket来更新网格吗?这是一个好主意吗?如果您想在IE8应该能够查看的页面中使用WebSocket,请改用Ajax WebSocket最初是为客户机和服务器之间的快速双向通信而设计的。这

我刚开始研究。我想知道我是否可以用WebSocket而不是ASP.NET UpdatePanels来更新网页的所有内容,或者这会不会太过分了

WebSocket可以替代AJAX吗?这就是WebSocket的用途吗


大多数示例都是用于双向聊天的演示。但是,如果我想单击一个按钮而不是回发来更新网格,我可以用WebSocket来更新网格吗?这是一个好主意吗?

如果您想在IE8应该能够查看的页面中使用WebSocket,请改用Ajax

WebSocket最初是为客户机和服务器之间的快速双向通信而设计的。这对于游戏在浏览器中蓬勃发展是非常重要的,但是服务器端的实现还没有完全标准化——可能会有更多的安全问题


目前,WebSocket仅用于玩具实现。他们还没有为客户做好准备。而且,只有当Ajax调用和Comet调用对于您的需求来说太慢时,它们才是真正必要的。

从技术上讲,是的。实际上,我可能会等待。

WebSocket绝对是HTML5进行我们习惯的通信的方式。从技术上讲,是的,你可以,但取决于你正在建设的网站类型,你可能想推迟。Websockets是HTML5规范中较新的部分之一,目前仍在定稿中。它适用于最新版本的Chrome和Firefox4,但IE9还没有实现这一功能,也没有关于IE10是否也会实现这一功能的消息。展示最新技术的技术网站(如演示HTML5中可能的技术)以及保证绝大多数观众使用支持性浏览器或是早期采用者的任何其他网站都是不错的。否则,您可能会疏远一些用户。只有你能决定走哪条路

这里的关键是WebSocket目前是一个不断变化的规范,AJAX在新旧浏览器中都能工作。如果你想要向后兼容,除了保证规范和浏览器明天不会改变,也不会破坏你现有的代码,那么使用AJAX。如果您对规范和浏览器实现在未来可能会发生的微小变化持冷静态度,并且不关心使用旧浏览器的人,那么请使用WebSocket

:

  • Chrome 4.0支持WebSocket
  • Safari 5.0.2也支持它们
  • Firefox4.0附带了对禁用WebSocket的支持。要启用它,请参见
  • Opera 11附带禁用的支持以重新启用它,请参见
  • IE9不支持它们,但是一个附加组件提供了实验支持

WebSocket标准专为需要低延迟、低开销通信的应用程序而设计。它们适用于现有的应用程序,这些应用程序正在突破AJAX/Comet/long poll的极限。但更重要的是,WebSockets将启用一个全新的web应用程序类,这类应用程序目前还不存在

对于您的情况,听起来WebSockets可能有点过头了,因为延迟并不是您构建的核心问题。当然,您可以使用WebSocket来完成这项工作,但我怀疑在您的情况下,这将是额外的工作,几乎没有什么好处


请参阅为什么WebSocket已经可以普遍使用(使用和本机iOS支持,这意味着WebSocket在几乎所有的浏览器上都受支持)。

我认为XHR和WebSocket适用于两种不同的场景,您应该使用一种更适合您的场景

XHR具有请求-响应对。每个请求都与一个响应配对。这对于远程过程调用很好,但如果您希望在没有请求的情况下进行响应(即服务器推送),则会产生不必要的开销

WebSocket解决了上述问题。您可以发送请求而不需要任何响应。服务器也可以通过响应向您发送任何内容,而无需您首先启动请求


在按钮点击和内容更新场景(例如编辑表格单元格)中,XHR(和UpdatePanel)工作得更好。这是因为内容更新必须与按钮点击配对。这是一个请求-响应对。但在纯内容更新场景中(例如显示实时股价),WebSocket工作得更好。在内容更新与点击按钮无关(如聊天)的情况下,WebSocket也能更好地工作。

WebSocket API(它是协议本身的一个独立标准,从技术上来说也不是HTML5的一部分)不太可能以向后不兼容的方式进行更改。WebSocket协议允许编写支持多个协议版本的服务器,大多数服务器都支持。iOS现在本机支持WebSocket。此外,是基于闪存的多填充/回退。这意味着浏览器支持几乎已经普及。通过向应用程序添加(基于Flash的polyfill/fallback),您可以支持任何带有Flash的浏览器。再加上iOS本机支持WebSocket,这使得WebSocket在几乎所有主流浏览器上都可用。有许多WebSocket服务器,大多数都支持浏览器中的所有协议版本。此外,“玩具”也有误导性。诚然,大多数WebSocket的使用都是相对较新的,并且还在开发中,但肯定有一些应用程序是生产质量的。在这种情况下使用WebSocket的主要问题是,可能需要付出相当多的努力才能获得一点收益。在这种情况下,可能不值得尝试将WebSocket支持添加到IIS(假设ASP.NET应用程序正在IIS上运行)或添加额外的WebSocket服务器和基础结构以允许ASP.NET应用程序与其对话。我完全同意websocket由于支持回退功能而可以普遍使用。问题是,在您自己的托管环境中的后端设置WebSocket支持,这在当时是有点麻烦的