草庐IT

xhr-polling

全部标签

javascript - 从 XHR 获取响应 Content-Type header

我想看看header是文本/html还是文本/xml。如果它是text/html则有一个错误,我宁愿在继续之前捕获它。 最佳答案 使用getResponseHeader()方法。最小的例子:functionhand(){console.log(this.getResponseHeader('content-type'));}varx=newXMLHttpRequest();x.onreadystatechange=hand;x.open('GET','index.html',true);x.send();

javascript - 从 xhr 对象获取请求 url

有什么方法可以从xhr对象中提取请求url吗?我可以通过channel属性在firebug中看到url,但你不能使用javascript查询它。 最佳答案 使用以下hack不需要包装器:varxhrProto=XMLHttpRequest.prototype,origOpen=xhrProto.open;xhrProto.open=function(method,url){this._url=url;returnorigOpen.apply(this,arguments);};用法:varr=newXMLHttpRequest();

javascript - Safari 11.1 : ajax/XHR form submission fails when input[type=file] is empty

更新:截至Webkitbuildr230963,这个问题已经在Webkit中解决了。===========自从最近在macOS和iOS上更新Safari11.1以及SafariTechnologyPreview11.2以来,当input[type=file]字段没有选择文件(我的表单不需要)。当字段确实选择了文件时没有失败。ajax的error回调运行,Safari控制台包含以下消息:加载资源失败:操作无法完成。协议(protocol)错误。我使用HTTPS并通过HTTPS提交到同一域(和服务器)上的一个位置。在11.1更新之前,$.ajax调用在没有选择文件时提交得很好。最新版本的C

javascript - 我如何通过 XHR onProgress 函数使用压缩/gzip 内容?

我之前看到过很多与此类似的问题,但我还没有找到一个能准确描述我当前问题的问题,所以这里是:我有一个页面,它通过AJAX加载一个大的(0.5到10MB之间)JSON文档,以便客户端代码可以处理它。加载文件后,我不会遇到任何我没有预料到的问题。但是,下载需要很长时间,所以我尝试利用XHRProgressAPI呈现进度条以向用户指示文档正在加载。这很有效。然后,为了加快速度,我尝试通过gzip和deflate在服务器端压缩输出。这也奏效了,收获巨大,但是,我的进度条停止工作了。我已经调查了一段时间,发现如果请求的AJAX资源没有发送正确的Content-Lengthheader,onProg

Golang : Interrupting infinite polling having time. 休眠

我正在使用以下简单的轮询机制:funcpoll(){for{ifa{device1()time.Sleep(time.Second*10)}else{sensor1()time.Sleep(time.Second*10)}}}仅当“a”为真时我才需要轮询设备1,否则轮询传感器1。现在这里的“a”将通过单击UI上的按钮设置为true,这将是一个随机行为。但是由于time.Sleep,在检查条件时引入了延迟。有什么办法可以让time.Sleep在得到a的值后立即停止?在golang中轮询时有哪些可能的方式来实现此类中断? 最佳答案 您不

linux - 当在另一个线程上更改 pollfd 时,Linux 和 OS X 之间 poll() 的差异

我正在尝试让libwebsockets在OSX的多线程环境中运行。我无法触发从与主服务线程不同的线程发送数据。在libwebsocket文档中暗示这应该是可能的(democode,mailinglist)。所以我深入研究了代码,发现问题出在poll()函数中。对于作为参数给出的structpollfd,poll()似乎表现不同。libwebsockets依赖于在poll()处于事件状态时更改fds.event字段的可能性。这在Linux上工作正常,但在OSX上不工作。我写了一个小测试程序来演示这个行为:#include#include#include#include#include#d

c - 为什么这个消息不仅在写入文件时显示(使用 poll C Linux 功能)?

我正在阅读有关C编程中的轮询的内容,并构建了一个在poll(2)manpage上给出的应用程序.例子如下:#include#include#include#includeintmain(){structpollfdfds[2];inttimeout_msecs=-1;intret;inti;/*OpenSTREAMSdevice.*/fds[0].fd=open("/home/jeshwanth/mywork/poll/dev0",O_RDONLY);fds[1].fd=open("/home/jeshwanth/mywork/poll/dev1",O_RDONLY);fds[0].e

linux - 当套接字在本地关闭时,poll() 无法检测到事件?

我正在从事一个项目,该项目将把TCP/IP客户端程序移植到嵌入式ARM-LinuxController板上。客户端程序最初是在epoll()中编写的。但是,目标平台很旧;唯一可用的内核是2.4.x,不支持epoll()。所以我决定重写poll()中的I/O循环。但是当我测试代码时,我发现poll()并没有像我预期的那样工作:当TCP/IP客户端套接字被另一个线程在本地关闭时,它不会返回。我写了一个非常简单的代码来做一些测试:#include#include#include#include#include#include#include#includestructpollfdfdList

c - c中的poll函数是如何工作的?

我是套接字编程的新手,我想弄清楚轮询是如何工作的。所以我做了一个小示例程序。该程序似乎按照我的预期工作,但是当我注释掉具有intdummy的行时,for循环只运行一次迭代,而它应该执行十次.我不明白的是该变量与for循环有什么关系。该程序假设在3.5秒后打印“timeout”,如果有可用输入则打印“returnhit”。#include#includeintmain(intargc,char*argv[]){inta;intb;intc;charbuf[10];inti;structpollfdufds[1];ufds[0].fd=0;ufds[0].events=POLLIN;int

c++ - 为什么没有输入,poll 一直返回?

我写了一个小测试程序来弄清楚如何与poll交谈.我创建了三个文件testa,testb,testc并将字符串hello\n写入第一个。所以,这是我对poll的调用:poll(polls.data(),polls.size(),-1)根据联机帮助页,-1的超时应该表明系统调用永远不会超时。但是,它一直返回而没有任何内容可读。我总是消耗一个字节的输入,并且可以看到正在打印的hello\n,但poll并不止于此。它只是继续假装有东西可读。#include#include#include#include#include#include#include#include#include#inclu