在 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 响应? 的相关文章

  • 更新标记文本谷歌地图API

    因此 我在我的网站上使用 Google 地图 API 并且希望标记文本等于另一个 html 元素的值 这里有人知道如何更新 google 地图 API 中标记的文本属性的值吗 这是我关于该问题的代码 var map marker var i
  • 如何使用 TypeScript 和 Angular 2 将插件添加到 ng2-ckeditor ?

    我正在尝试添加Justify插件到我的 ckeditor 但不幸的是我找不到任何关于如何将插件添加到 ng2 ckeditor 的信息 另外 我找不到任何应该添加插件的目录或配置文件 我正在使用 ng2 ckeditor1 0 6使用 Ty
  • Redux - 异步加载初始状态

    我正在尝试找出最简洁的方法来加载来自 API 调用的 Redux 存储的初始状态 据我所知 提供初始状态的典型方法是在页面加载时在服务器端生成它 并将其作为简单对象提供给 Redux createStore 但是 我正在编写一个应用程序 计
  • 在javascript中执行curl请求?

    是否可以用 jQuery 或 javascript 发送curl 请求 像这样的事情 curl H Authorization Bearer 6Q https api wit ai message v 20140826 q 因此 在 PHP
  • 将 PictureStream 转换为 HTML5 画布

    我正在从 net Web 服务检索图片流的字节数组 JSON 字节数组响应如下所示 137 80 78 372 617 more 我正在尝试转换这个字节数组并将其绘制到 HTML 画布中 如下所示 var context document
  • onchange 使用 radioChoice 获取当前值

    我尝试使用 radioChoice onChange 从无线电表单中获取选定的值 但似乎无法真正找到解决方案 onEvent 函数被调用 但从这里我不太确定如何获取该值 Code RadioChoice
  • ReactJS 在打字时延迟 onChange

    我需要更改状态以维护用户正在输入的字符串 但是我想延迟操作直到用户停止打字 但我不太清楚如何做到这两点 因此 当用户停止打字时 我希望触发一个操作 但不是在此之前 有什么建议么 使用 React Hooks 和 Function 组件 要保
  • 访问原型中的“私有”变量

    JavaScript 是否可以创建一个可以在原型中访问的私有变量 我尝试了以下显然不起作用 http jsfiddle net TBfk4 因为bar只能从内部访问Foo而不是来自原型内部 function Foo var bar test
  • 打字稿 keyof 返回字符串数组

    假设我有一堂课 class Test propA propB propC 我想创建一个返回字符串数组的方法 并将其键入为仅 Test 类中存在的键 我该如何使用keyof特征 class Test propA propB propC get
  • 在javascript中,对象和命名空间有什么区别?

    在读的时候 面向对象的 JavaScript https developer mozilla org en US docs Web JavaScript Introduction to Object Oriented JavaScript
  • 使用 forEach 循环 Array(n),未定义值的数组[重复]

    这个问题在这里已经有答案了 我想快速构建一个数组n使用数组构造函数的长度Array 然后循环得到的数组 Per MDN 的文档 https developer mozilla org en US docs Web JavaScript Re
  • Javascript 桥接到 Flash 以在 Flash 中存储 SO“cookie”

    读完这个问题后如何唯一地识别访问我网站的计算机 https stackoverflow com questions 216542 how do i uniquely identify computers visiting my web si
  • 如何在鼠标悬停时覆盖 div / box?

    我有一个链接 当用户将鼠标悬停在其上时 它应该在链接下显示一个框 div 盒子应该覆盖其下方的所有内容 我如何使用 css 或 javascript 来做到这一点 您有一个隐藏的绝对定位的 div 和链接的子级 然后 当您将鼠标悬停在链接上
  • 如何在 Typescript 中使用默认值定义可选构造函数参数

    是否可以有带有默认值的可选构造函数参数 如下所示 export class Test constructor private foo string foo private bar string bar 这给了我以下错误 参数不能有问号和初始
  • Jquery 验证,在submitHandler() 中单击获取按钮

    我有两个按钮type Submit 验证后 在submitHandler我想知道点击了这些按钮中的哪一个 根据这一点 我想禁用该按钮 Handler add customer validate rules name required tru
  • javascript中的快捷方式融合优化

    我听说 lodash 和其他 javascript 库使用一种称为 快捷融合 的技术进行优化 但在任何地方都找不到该技术的详细解释 任何人都可以提供链接或举例解释 快捷方式融合 的含义吗 对于一个非常简短且不清楚的解释 https wiki
  • 使用 javascript 将 HTML 字符实体转换回常规文本

    问题说明了一切 例如 我们有 gt 我们需要 gt 仅使用 JavaScript Update 看来 jquery 是最简单的出路 但是 如果有一个轻量级的解决方案就好了 更像是一个能够自行完成此操作的函数 你可以这样做 String pr
  • 使用 fullpage.js 触发 Velocity.js/Blast.js

    以下是此处发布的解决方案 Velocity js Blast js 从 0 开始不透明度 https stackoverflow com questions 28614890 velocity js blast js starting op
  • Javascript:为什么我需要在 for 循环中声明 var i = 0?

    我正在做一个需要递归的问题 用于计算加起来达到一定数量的硬币组合 有效的解决方案如下 困扰我几个小时的一件事是 当我没有在 for 循环中声明 var i 0 时 它不起作用 据我了解 当我在 for 循环中声明 var 时 它会保留在该范
  • 模块模式和这个

    我正在为我的 JavaScript 类 使用模块模式 声明有什么重大缺点吗 var self在课外我返回然后将其设置为this在类构造函数内部 这样当我不希望发生上下文切换时 我就不必担心上下文切换 在这个小例子中 可能没有必要 这只是一个

随机推荐

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

    我装了两张表 一张是客户 另一张是订单 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