在 Perl CGI 中分段 AJAX 响应?

2024-01-25

perl cgi 脚本是否可以将其 AJAX 响应分段为多个单独的 HTTP 响应?

假设我有这段代码:

xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function()
{
    if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
        onDataReceived(xmlhttp.responseText);
    }
    else if(xmlhttp.status!=200 && xmlhttp.status!=0) {    }
}
xmlhttp.open("POST","script.cgi",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send(toURLString(options));

作为 javascript (不要告诉我有关 ie 的 xml 对象兼容性问题,我知道,并且不在乎)。

和这个:

print "Content-type: text/html\n\n";

my %form = Vars();
if($ENV{REQUEST_METHOD} eq "POST" )
{
    $|=1;
    for(my $i, (1..100000000))
    {
        print "1\n";
    }
}

作为 Perl CGI。是否有可能以许多单独的 1 数据包的形式打印出这个结果,而不是在最终输出之前生成 100000000 个 1?


请参阅这个SO问题以了解可能的方法,尽管它不是特定于Perl的:

在 AJAX 中处理增量服务器响应(在 JavaScript 中) https://stackoverflow.com/questions/1155066/dealing-with-incremental-server-response-in-ajax-in-javascript

从链接的 Wiki 文章来看,此链接似乎最相关:http://en.wikipedia.org/wiki/Comet_%28programming%29#XMLHttpRequest http://en.wikipedia.org/wiki/Comet_%28programming%29#XMLHttpRequest

但是,我强烈建议考虑一种轮询方法,而不是您正在考虑的“服务器推送”方法:

服务器将数据块存储为可访问的文件(带有一些排序元信息)

print "Location: xxxx"; 
# Sorry, forgot the exact form of Location HTTP response.
# Location points to URL mapped to /home/htdocs/webdocs/tmp/chunk_0.html
my %form = Vars();
if($ENV{REQUEST_METHOD} eq "POST" )
{
    $|=1;
    $file_num = 0;
    my $fh;
    for(my $i, (1..100000000))
    {
        if ($i % 1000 == 0) {
            close $fh if $fh;
            open $fh, ">", "/home/htdocs/webdocs/tmp/chunk_${file_num}.html";
            # Add the usual error handling on open/close i'm too lazy to type
            $file_num++;
        }
        print $fh "1\n";
    }
    print $fh "\n##############END_TRANSMISSION__LAST_FILE####################\n";
    # This was a singularly dumb way of marking EOF but you get the drift
    close $fh;
}

AJAX 轮询器在循环中逐一检索它们,处理包含下一个块的响应并查找元信息以了解下一个要轮询的块是什么(以及是否)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Perl CGI 中分段 AJAX 响应? 的相关文章

  • 渲染货币和符号并与来自不同单元格的数据相结合

    我正在使用最新的 jQuery DataTables v1 10 7 我正在尝试将数字解析为以下格式 239 90 USD 我可以使用此命令使货币正常工作 columns data Price render fn dataTable ren
  • 是否存在 IsCallable 为 false 但 IsConstructor 为 true 的 JS 对象?

    ECMAScript 规范函数可调用 https www ecma international org ecma 262 6 0 index html sec iscallable当且仅当其参数具有 Call 内部方法时返回 true 它在
  • 使用 JavaScript 禁用第三方 cookie

    我正在努力根据所有在欧盟运营的公司的数据保护规则实施新的 Cookie 政策合规性 根据该规则 用户在使用任何网站时必须能够拒绝 接受除必需的 Cookie 之外的所有内容 在我客户的网站中 我可以看到正在存储以下第三方 cookie ga
  • 图像无法在带有 DOM 的 IE 中加载:控制台中的 7009 错误(无法解码)

    当在 IE 中的单个页面上加载许多图像时 在 IE11 中重现 其中一些图像开始加载失败 并在控制台中出现类似以下警告的内容 DOM7009 无法解码 URL 处的图像 某些唯一的 url 当我查看网络流量时 似乎确实从服务器收到了每个图像
  • 带有淘汰赛js的隐形recaptcha

    我正在完成隐形验证码 但我在实现它时遇到问题 谷歌开发人员页面中的代码显示它应该是这样的
  • 使用 dc.js 按条形值对条形图中的条形进行排序(排序)

    如何通过维度的计算值而不是维度本身的名称对 dc js 示例中的 x 轴 维度 进行排序 例如 请考虑序数条形图的 dc js 示例 https github com dc js dc js blob master web examples
  • 如何将函数附加到弹出窗口关闭事件(Twitter Bootstrap)

    我做了一些搜索 但我只能认为我可以将事件附加到导致其关闭的按钮 https stackoverflow com questions 13205103 attach event handler to button in twitter boo
  • jQuery AJAX 请求在 IE8 中失败,并显示消息“错误:调用 open 方法之前无法调用此方法。”

    我正在使用 jQuery 1 4 2 并尝试执行一个简单的 AJAX 请求 目标 URL 返回一个 JSON 字符串 我使用 jslint 对其进行了验证 该请求在 Firefox 和 Chrome 中有效 但不想在 IE8 中工作 我无法
  • 将 GMT 时间转换为当地时间

    我以这种格式从我的服务器获取 GMT 时间 Fri 18 Oct 2013 11 38 23 GMT 我的要求是使用Javascript将此时间转换为本地时间 例如 如果用户来自印度 首先我需要采用时区 5 30并将其添加到我的服务器时间并
  • 使用 CSS 或 Javascript 填充动画

    我只是想知道是否可以使用 CSS 或 javascript 创建填充动画 基本上我想创建一个填充动画 如下图所示 http i40 tinypic com eit6ia png http i40 tinypic com eit6ia png
  • window.location 和 location.href 之间的区别

    我对之间的区别感到困惑window location and location href 两者似乎都以相同的方式行事 有什么不同 window location是一个对象 它保存有关当前文档位置的所有信息 主机 href 端口 协议等 lo
  • 刷新页面时保存用户的选择

    我目前有一个页面显示不同团队的数据 我有一些数据 用户可以单击使其处于 打开 或 关闭 状态 并为每个数据显示不同的图标 它基本上就像一个清单 只是没有物理复选框 我想记住哪些 复选框 已被选中 即使在用户刷新页面或关闭浏览器并稍后返回之后
  • 将 UMD Javascript 模块导入浏览器

    你好 我正在对 RxJS 进行一些研究 我可以通过在浏览器中引用它来使用该库 如下所示 它使用全局对象命名空间变量 Rx 导入 我可以制作可观察的东西并做所有有趣的事情 当我将 src 更改为指向最新的 UMD 文件时 一切都会崩溃 如下所
  • Firebase 函数 onWrite 未被调用

    我正在尝试使用 Firebase 函数实现一个触发器 该触发器会复制数据库中的一些数据 我想观看所有添加的内容votes user vote 结构为 我尝试的代码是 const functions require firebase func
  • 正则表达式 - 从 markdown 字符串中提取所有标题

    我在用灰质 https www npmjs com package gray matter 以便将文件系统中的 MD 文件解析为字符串 解析器产生的结果是这样的字符串 n Clean er ReactJS Code Conditional
  • 在移动设备上滚动

    这个问题更多的是一个建议研究 我确实希望它对其他人有帮助 并且它不会关闭 因为我不太确定在哪里寻求有关此事的建议 在过去的 6 个月里 我一直在进行移动开发 我有机会处理各种设备上的各种情况和错误 最麻烦的是滚动问题 当涉及到在网站的多个区
  • 如何使用 crypto-js 解密 AES ECB

    我正在尝试将加密数据从 flash 客户端 发送到服务器端的 javascript 在 asp 中作为 jscript 运行 有几个 javascript Aes 库 但它们实际上没有文档记录 我正在尝试使用 crypto js 但无法让代
  • 在 JavaScript 循环之外声明变量可以提高速度和内存?

    C 也有类似的问题 但我们没有看到 JavaScript 的任何问题 在循环内声明变量是否可以接受 假设循环有 200 次迭代 使用样本 2 相对于样本 1 是否有性能要求 内存和速度 我们使用 jQuery 来循环 它提高了我们将 var
  • 如何用另一个响应替换窗口的 URL 哈希?

    我正在尝试使用替换方法更改哈希 URL document location hash 但它不起作用 function var anchor document location hash this returns me a string va
  • 如何在react-highcharts中使用图表工具提示格式化程序?

    如何使用图表工具提示格式化程序 我正在使用高图表的反应包装器 我有这样的配置 const CHART CONFIG tooltip formatter tooltip gt var s b this x b each this points

随机推荐

  • 我怎样才能执行这个聚合?

    我装了两张表 一张是客户 另一张是订单 select from customers id Name age adress salary 2 102 jpj 24 zzzz 10000 3 103 ftd 20 kkkk 20000 4 10
  • 在PHP中对多维数组进行排序的最快方法

    Array 0 gt Array t gt 81881 b gt 99494 1 gt Array 我有一个像上面这样的多维数组 这个数组中的条目最大可达 20k 我想对这个数组进行排序 到 t 索引而不调用任何外部函数 任何提高效率的建议
  • 由于“INFO Spawnerr:为“app_name”制作调度程序时出现未知错误:EACCES”,无法使用 nohup 启动服务

    我正在尝试与主管一起启动服务 但收到错误消息 信息spawnerr 为 app name 制作调度程序时出现未知错误 EACCES 这是我的supervisord conf 文件 supervisord logfile tmp superv
  • 在类定义之外定义显式专用类的成员函数

    我看到与模板相关的错误 编译器是 Visual Studio 2012 但我不明白 这是代码 归结为要点 Templated class generic template
  • 使用 Windows Azure 队列锁定队列中的消息

    我正在使用 Windows Azure 消息队列 我想知道是否有一种方法可以在收到消息时锁定队列中的消息 当您从队列中检索消息时 它被标记为无形的直到您删除它 或达到超时期限 当它被标记为不可见时 其他人都看不到该消息 我想这已经接近 锁定
  • java中使用数字作为包名

    我已经检查了以下帖子 https docs oracle com javase specs jls se7 html jls 6 html jls 6 2 https docs oracle com javase specs jls se7
  • 在 j2me 中读取收件箱中的短信

    我如何阅读收件箱中的短信 我想阅读短信 没有短信等 我可以在 j2me 中做吗 如果可以的话怎么做 我想在诺基亚和索尼上运行该应用程序 我相信您无法直接从收件箱读取短信 但是 您可以运行 j2me 应用程序并等待传入 的短信 换句话说 如果
  • Firebase Auth:手动检测当前用户最近是否经过身份验证

    默认情况下 如果用户 X 年前登录 Firebase 将要求他 她通过以下方式重新进行身份验证reauthenticateWithCredential以完成该动作 如果用户在继续下一步操作之前已经符合重新身份验证的资格 是否可以查询 Fir
  • 尝试避免使用 sapply 进行 for 循环(对于 gsub)

    尽量避免使用for使用以下代码循环sapply 如果可能的话 带循环的解决方案对我来说非常适合 我只是想学习更多 R 并探索尽可能多的方法 目标 有一个向量i和两个向量sf 搜索 和rp 代替 对于每个i需要循环sf并替换为rp哪里匹配 i
  • 带有 Ignited-Datatables 库的服务器端 DataTables

    如何使用 Ignited Datatables 库来服务器端 DataTables 我的应用程序使用 CodeIgniter 我使用的库是Ignited datatables 库 https github com IgnitedDatata
  • SOLR计数多值字段查询

    是否可以创建一个 solr 查询 其中仅返回在多值字段中具有多个条目的文档 例如 docs id 1 myfield hello word hello stackoverflow id 2 myfield hello word 我天真的示例
  • 将数值向量中的 NA 替换为从邻居计算出的值

    我正在尝试写一个替换 函数将给定数值向量中的每个缺失值替换为算术平均值 of 它的前面和后面的元素 例如 如果c 5 NA 6 2 3 5 6 4 NA 2 NA 5 给出 那么结果应该是c 5 5 5 6 2 3 5 6 4 3 2 3
  • 如何在 printf 函数中使用宏

    所以我在我的头文件中定义了这个宏和其他一些宏 define COL1WIDTH 16 我想用它来打印这样的东西 word 25 Dir1 FileB 129 Sat Jan 1 00 00 02 2011 12 1 x4 2 x2 3 x2
  • ASP.NET 中的 jQuery ajax 带有 customErrors mode="On"

    知道如何检索服务器端在执行时抛出的原始异常使用 jQuery 调用 ajax 并使用 自定义错误模式 开 在 web config 中 如果 mode Off 我可以使用此函数获取错误 error function xhr status e
  • C++ 中的重定向

    include
  • TDD 如何应用于基于 Django 类的通用视图?

    由于 Django 中基于类的通用视图涉及框架的一些工作 我发现很难以 TDD 风格使用它们 现在 我使用 TestClient 从 http 模拟堆栈访问视图 但我更愿意在使用 TestClient 进行 功能 测试之前正确地对特定方法
  • 何时在 Linq 中使用 Cast() 和 OfType()

    我知道有两种将类型转换为IEnumerable从一个Arraylist在 Linq 中并想知道在什么情况下使用它们 e g IEnumerable
  • Cassandra/Spark 显示大表的条目计数不正确

    我正在尝试使用 Spark 处理大型 cassandra 表 约 4 02 亿条目和 84 列 但得到的结果不一致 最初的要求是将一些列从该表复制到另一个表 复制数据后 我注意到新表中的一些条目丢失了 为了验证我是否对大型源表进行了计数 但
  • 安卓框架。它是什么? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我对 Android 框架有几个问题 有人可以回答吗 他们 Android 框架有什么作用 做 它的工作是什么 这些经理是什么 活动经
  • 在 Perl CGI 中分段 AJAX 响应?

    perl cgi 脚本是否可以将其 AJAX 响应分段为多个单独的 HTTP 响应 假设我有这段代码 xmlhttp new XMLHttpRequest xmlhttp onreadystatechange function if xml