TOGOUTECH

javascript - Safari 中是否可以使用 Http Streaming Comet?

coder 2024-05-16 原文

对于 HTTP Streaming Comet,我指的是“永远的 iframe”/“永远的 xhr”变体,它们在从服务器推送数据后不会关闭连接,这与关闭并重新发送请求的标准轮询和长轮询相反每个服务器推送事件的新请求。

我查看了 dojo.io.cometd 包,它们似乎只有轮询实现。我还找到了this example ,但即使经过相当多的修补,它似乎也无法在 webkit 中工作(我让它在其他任何地方都可以工作)。 This announcement from the safari blog似乎暗示 xhr 是可能的,但我找不到任何代码或文档,也无法让它工作。

有谁知道在 Webkit 浏览器(Safari 和 Chrome)中实现 HTTP streaming comet 的技术、脚本、库或演示?

更新

经过一些修改后,我发现需要做两件事才能通过 XHR 在 Safari 中使用 http 流:

  • 响应需要有一个 Content-Type:multipart/x-mixed-replace
  • 在浏览器开始持续显示更新之前,响应需要发送一些“噪音”字符。我假设这与填充一些内部缓冲区有关。

更新 2

我终于使用 iframe 技术让它在所有浏览器中工作。该解决方案需要注意的是,只有基于 WebKit 的浏览器才能接收 multipart/x-mixed-replace header 。

最佳答案

根据维基百科,HTTP Streaming comet 应该可以在每个浏览器中使用。 “没有框架的页面布局”,Ajax:权威指南。 O'Reilly Media,第 320 页。ISBN 0596528388 是此信息的引用引用,因此本书可能对如何执行此操作提供了建议。

还有 http://meteorserver.org/有一个我刚刚确认在 Chrome 中有效的演示,它是一个客户端库 + 一个将数据推送到客户端的服务器。

关于javascript - Safari 中是否可以使用 Http Streaming Comet?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/169258/

有关javascript - Safari 中是否可以使用 Http Streaming Comet?的更多相关文章

  1. c# - 我怎么知道属性是否是通用集合 - 2

    我需要使用PropertyInfo类知道类中属性的类型是否为泛型集合(List、ObservableCollection)。foreach(PropertyInfopin(o.GetType()).GetProperties()){if(pisCollection<T>?????)} 最佳答案 TypetColl=typeof(ICollection<>);foreach(PropertyInfopin(o.GetType()).GetProperties()){Typet=p.PropertyType;if

  2. c# - 如何使用 EF 4.x DbContext 生成器获取属性更改通知 - 2

    我正在使用EntityFramework4.3,因此我使用DbContextGenerator来创建上下文和实体类。使用默认的EF4代码生成器模板,实体类实现INotifyPropertyChanged,并在属性setter中添加Changing和Changed分部方法。当我使用EF4.xDbContext生成器时,如下图所示,实体类要轻得多,并且不包括任何跟踪属性更改的方法。这是一个例子://------------------------------------------------------------------------------//<auto-generate

  3. c# - 如何在 C# 中创建可以转换为 DateTime 的类? - 2

    我如何创建可以转换为DateTime的类。但是当它打包时,我需要上课。例如:objectdate1=newMyDateTime();DateTimedate2=(DateTime)date1;我直接需要这个工作示例。我知道该怎么做,但我的方法无需打包也能奏效。我不确定是否有办法做到这一点。请帮忙。附言。我需要直接将对象转换为DateTime。所以,MyDateTime之前必须打包。Explicit效果很好,但如果您有打包的对象,它就无济于事。而且它必须使用像这样的普通转换来转换(DateTime)(object)MyDateTime 最佳答案

  4. c# - 如何确定枚举值是否具有一个或多个与之比较的值? - 2

    我有一个标有[Flags]属性的枚举,如下所示:[Flags]publicenumTag:int{None=0,PrimaryNav=1,HideChildPages=2,HomePage=4,FooterLink=8}在我的站点地图的站点地图节点上,我将标签组合的int值存储为一个属性。我需要做的是检查一个节点是否有一个或多个标签中的任何一个,例如标签.PrimaryNav|标记.HomePage.我正在努力使用必要的bool逻辑来确定枚举值是否具有一个或多个与之进行比较的值。如果不清楚,请见谅。如有必要,我可以提供更多信息。 最佳答案

  5. c# - 是否有 .NET 方法来枚举所有可用的网络打印机? - 2

    是否有直接的方法来枚举.NET中所有可见的网络打印机?目前,我正在展示PrintDialog以允许用户选择打印机。问题在于,本地打印机也会显示(以及XPSDocumentWriter等)。如果我可以自己枚举网络打印机,我可以显示一个仅包含这些打印机的自定义对话框。谢谢!! 最佳答案 从LocalPrintServer.DefaultPrintQueue获取默认打印机从PrinterSettings.InstalledPrinters获取已安装的打印机(从用户的角度来看)枚举列表:任何以\\开头的打印机都是网络打印机-所以使用newP

  6. c# - 如何在 C# 中使用正则表达式解析 OData $filter? - 2

    您好,我想知道在C#中解析OData$filter字符串的最佳方法是什么,例如/API/organisations?$filter="nameeq'Facebook'ornameeq'Twitter'andsubscribersgt'30'"应返回名称为Facebook或Twitter且拥有超过30个订阅者的所有组织。我已经研究了很多但找不到任何不围绕WCF的解决方案。我正在考虑使用Regex并将它们分组,所以我有一个列表过滤器类使得:FilterResource:NameOperator:EqValue:FacebookFilterResource:NameOperator:EqVa

  7. c# - 如何使用 c#.net 从组合框中的 sql server 获取所有数据库的列表 - 2

    我正在通过文本框输入源名称用户ID和密码,并希望数据库列表应该列在组合框中,以便用户可以选择源名称、用户ID、密码和数据库名称这四个选项来执行连接数据库将根据用户从其他系统中检索。用户将输入IP、用户ID和密码,他们应该在组合框中获得数据库列表,以便他们可以选择所需的数据库并执行连接privatevoidfrmConfig_Load(objectsender,EventArgse){try{stringConn="server=servername;UserId=userid;"+"pwd=******;";con=newSqlConnection(Co

  8. c# - 如何判断文件是否已被修改? - 2

    我正在编写(某种)备份解决方案。它只是从位置C:\复制文件并将其粘贴到位置Z:\为保证速度快,复制粘贴前先检查原文件是否存在。如果是这样,它会执行一些“计算”来确定复制是否应该继续或备份文件是否是最新的。我发现这些计算很困难。最初,我比较了文件大小,但这还不够好,因为很有可能更改文件并将其大小相同(例如,在记事本中保存字符C与我保存的大小相同字符T)。所以,我需要查明修改日期是否不同。目前,我使用FileInfo类获取文件信息,但在查看所有字段后,没有任何内容看起来合适。如何检查以确保复制的文件已被修改?编辑我已经看到关于使用MD5校验和的建议,但我担心这可能是个问题,因为我比较的一些

  9. c# - 如何使用 LINQ 获取 int 数组中的前 3 个元素? - 2

    我有以下整数数组:int[]array=newint[7]{1,3,5,2,8,6,4};我编写了以下代码来获取数组中的前3个元素:vartopThree=(fromiinarrayorderbyidescendingselecti).Take(3);当我检查topThree中的内容时,我发现:{System.Linq.Enumerable.TakeIterator}count:0我做错了什么,我该如何更正我的代码? 最佳答案 您如何“检查topThree中的内容”?最简单的方法是将它们打印出来:usingSystem;usingS

  10. c# - 使用 Json.NET 的自定义反序列化 - 2

    我有课publicclassOrder{publicintId{get;set;}publicstringShippingMethod{get;set;}}我想将下面的JSON数据反序列化为上面的类/对象stringjson=@"{'Id':1,'ShippingMethod':{'Code':'external_DHLExpressWorldwide','Description':'DHLILSExpressWorldwide'}}";我的想法是JSON中的Shipping

随机推荐

  1. c# - 为什么所有委托(delegate)类型都彼此不兼容? - 2

    在C#中,所有委托(delegate)类型都彼此不兼容,即使它们具有相同的签名。例如:delegatevoidD1();delegatevoidD2();D1d1=MethodGroup;D2d2=d1;//compiletimeerrorD2d2=newD2(d1);//youneedtodothisinstead这种行为和语言设计决策背后的原因是什么。 最佳答案 InC#alldelegatetypesareincompatiblewithoneanother,eveniftheyhavethesamesignature.Wha

  2. c# - 无法为泛型类型创建 TypeConverter - 2

    我想创建一个TypeConverter对于通用类,像这样:[TypeConverter(typeof(WrapperConverter<T>))]publicclassWrapper<T>{publicTValue{//get&set}//othermethods}publicclassWrapperConverter<T>:TypeConverter<T>{//onlysupportToandFromstringspublicoverrideboolCanConvertFrom(ITypeDescriptorContextcon

  3. c# - 无法加载文件或程序集临时 ASP.NET 文件 - 2

    我正在使用C#(.NETFramework4)在ASP.NET上开发一个网站。创建新网站项目后,我尝试运行该项目。但我收到以下错误:Couldnotloadfileorassembly'file:///C:\Windows\Microsoft.NET\Framework\v4.0.30319\TemporaryASP.NETFiles\myfirst\159977c5\b9e740fc\App_global.asax.yfqtni9g.dll'oroneofitsdependencies.Thesystemcannotfindthefilespecified.我已经浏览

  4. c# - 如何将 xmldocument 保存到流中 - 2

    我已经编写了代码来使用XmlReader解析我的xml文件,所以我不想重写它。我现在已经为程序添加了加密。我有encrypt()和decrypt()函数,它们采用xml文档和加密算法。我有一个使用xml阅读器解析文件的函数,但现在有了xml文档,我不确定如何创建xmlreader。问题是如何将我的xml文档保存到流中。我敢肯定这很简单,但我对流一无所知。XmlDocumentdoc=newXmlDocument();doc.PreserveWhitespace=true;doc.Load(filep);Decrypt(doc,key);StreamtempStream=null;doc

  5. c# 在运行时创建一个未知的泛型类型 - 2

    所以我有一个泛型类,它可能需要在它自己的一个方法中创建一个具有不同类型泛型的实例,其类型是通过反射获得的。这很重要,因为此存储库映射T到数据库表[这是我正在写的一个ORMish],如果代表T的类有一个代表另一个表的集合,我需要能够实例化它并将其传递到存储库[alaInception]。我正在提供方法,以防它更容易发现问题。privatePropertiesAttributesAndRelatedClassesGetPropertyAndAttributesCollection(){//ReturnsaListofPropertyAndAttributesvartype=typeof(T

  6. c# - 通过 SendMessage 或其他方式异步 GetForegroundWindow? - 2

    有没有一种方法可以在焦点从任何窗口更改到另一个窗口(甚至在Windows应用程序之间)时得到通知,这样我就可以在用户更改焦点时立即调用我的委托(delegate)?我一直在想我可能只需要做轮询:(:(每1秒并调用GetForegroundWindow但我真的不想这样做。 最佳答案 SetWinEventHook()可能是你最好的选择;您可以监听EVENT_SYSTEM_FOREGROUND以监听前景窗口的变化-或者甚至监听EVENT_OBJECT_FOCUS以监听应用程序和控件内更精细的焦点变化。您需要将其与WINEVENT_OUT

  7. c# - 在应用依赖注入(inject)时,Func<in T, out TResult> 是否适合用作 ctor arg? - 2

    例子:publicclassBusinessTransactionFactory<T>whereT:IBusinessTransaction{readonlyFunc<Type,IBusinessTransaction>_createTransaction;publicBusinessTransactionFactory(Func<Type,IBusinessTransaction>createTransaction){_createTransaction=createTransaction;}publicTCreate(){return(T)_cr

  8. c# - 将德语字符(变音符号、重音符号)替换为英语对应字符 - 2

    将德语字符(元音变音、重音符号)替换为英语字符我需要从各种文本字段中删除所有德语特定字符,以便处理到另一个系统中,该系统不会接受它们为有效。所以我知道的字符是:ß一种Øü一种厄ü目前我有一些手动替换它们的方法:myGermanString.Replace("ä","a").Replace("ö","o").Replace("ü","u").....但我希望有一种更简单/更有效的方法来做到这一点。由于每次运行我将在数千个字符串上执行此操作,其中99%将不包含这些字符。也许涉及某种Culture

  9. c# - 改进的 IValueConverter——MarkupExtension 还是 DependencyObject? - 2

    我在网上看到了两种不同的增强IValueConverter的方法。其中一个从MarkupExtension扩展了ValueConverter,另一个从DependencyObject扩展。我无法从两者中扩展,所以我想知道是否有一个比另一个更好? 最佳答案 从每一个派生给你不同种类的力量和灵active:源自MarkupExtension使您能够使用值转换器而不使其成为静态资源,如下所述:publicclassDoubleMe:MarkupExtension,IValueConverter{publicoverrideobjectPr

  10. c# - 在 ASP.NET 中将二进制数据转换为图像控件 - 2

    我的数据库中有图像的二进制数据,我想在ASP.NET的图像控件中显示它。如何?如果不行,请想办法保存到数据库中,在图像控件中显示。 最佳答案 像这样创建一个常规的HTMLimg元素:<imgrunat="server"id="image"/>并且在codebehind这样做:image.src="data:image/png;base64,"+Convert.ToBase64String(imageBytes);其中imageBytes是一个byte[]。你完成了。将显示图