问题标签 [dancer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
html - 如何保持来自 Dancer Route 的 HTTP 连接
我在一个项目中使用 Perl Dancer,我想实现 SSE http://www.html5rocks.com/en/tutorials/eventsource/basics/#toc-introduction-differences
我有一条舞者路线,我正在努力保持活力
似乎从舞者路线返回任何东西都会关闭连接。理想情况下,我想保持打开状态并存储$response
以将更多数据推送到以后。
更新:在进一步的研究中,舞者使用的 PSGI 应该可以做到这一点: http ://search.cpan.org/~miyagawa/PSGI-1.03/PSGI.pod#Delayed_Reponse_and_Streaming_Body 目前正在研究 一种中间件方法。
perl - 在 Perl Web 应用程序中,“我们的”变量在不同的 Web 请求-响应中共享?
我正在用 Perl 编写一个 Web 应用程序Dancer
。假设我在 中声明了一个变量our
,并将 的内容分配给它:$var
A.pm
file1
我声明var
为our
因为我想稍后在另一个文件中使用它B.pm
:
所以,get_file_content
执行之后,$var
应该是file1的内容。在display_file_content
执行之前,我更改了file1的内容,并单击了一些按钮来执行display_file_content
。正如假设的那样,显示了 file1 的原始内容。
然后我做了和上面一样的事情,只是改变了file1的内容后,我没有点击display_file_content
按钮。相反,我在另一个 Web 浏览器中对同一页面启动另一个 Web 请求。我get_file_content
是先执行的,直接点击按钮即可通过display_file_content
。file1 的修改内容显示在第二个 Web 浏览器中。这个是正常的。但是,当我在第一个网络浏览器中单击显示按钮时,它也显示了修改后的内容,而不是原来的内容。与在另一个 Web 浏览器中没有第二个 Web 请求的第一个实验相比,该变量似乎$var
在 Web 请求 - 响应过程中是共享的。但为什么会这样?你能给出一些解释吗?
perl - perl dancer - “任何”方法 - 调用哪个实际方法?
使用 Perl 的 Dancer 模块,如果您有一个“任何”方法(将匹配 get/post/put/delete),您如何确定浏览器使用的实际方法?
perl - perl dancer - 如何将附加参数传递给方法处理程序子例程?
有没有办法将附加变量传递给方法处理程序子例程?我通常不喜欢在子例程范围之外使用全局变量。我有诸如数据库连接和类实例之类的东西,我希望处理程序可以访问它们,而无需使用全局变量。使用调试到控制台,看起来 @_ 对于每个处理程序调用都是空的。
linux - 阅读 GET 请求时 Dancer 随机挂起
我在 Linux 上玩 perl dancer,如果浏览器直接通过 LAN 连接到服务器,一切都很好。但是,当我通过 WAN 连接并且浏览器是 IE9 时,偶尔繁忙的光标不会消失。
我可以通过连续重新加载页面 apx 10 次来引发这一点。即使我在每次重新加载之间等待几秒钟,我也会遇到这个问题。页面本身非常简单,并且通过了 w3c 检查。
如果我以 root 身份运行 dancer,或者端口是 80 还是 3000,都没有区别。 A 还测试了使用 apache 频繁重新加载页面,似乎没有问题。
我运行了 strace,我的印象是,请求数据有时在 dancer 尝试读取它时不可用。这就是跟踪的样子
当它工作时:
当它挂起
然后它永远存在。知道我能做什么吗?
perl - Perl - 模板工具包 - 如何获取模板中的变量列表?
我正在使用 PerlDancer
和Template::Toolkit
。
我正在尝试创建一个通用例程,该例程将传递一个模板和 HTTP GET/POST 参数。
我需要找到一种方法来获取模板中的变量列表,以便我可以从参数中检索它们,或者如果缺少一个或多个,则返回错误。
我可以走一条丑陋的正则表达式路线,但我希望有一种更好/更清洁的方式。
所有的模板都是 XML/SOAP,到处都有一些变量。
有任何想法吗?
multithreading - 与 dancer 同时服务多个用户的方法
出于某种原因,我找不到下面问题的答案,可能是因为它太明显了。
在我对 perl dancer 的实验中,我添加了一个路由,它只休眠 10 秒,然后返回一些东西。我这样做是为了模拟长时间运行的操作。我注意到,在这 10 秒内,舞者不会提供任何其他请求。我知道这是因为 dancer 是单线程的。
现在这种单线程方法显然不适用于要求不高的应用程序。所以我相信一定有很多既定的解决方案。但我似乎不知道谷歌搜索的正确搜索字符串。
为了清楚起见:我不介意,当初始化长时间运行的操作本身的请求被阻塞时。我想要的是所有其他请求都得到满足。
任何人都可以请教我
- 网络服务器传统上如何处理长时间运行的操作,而不阻塞其他请求?
- 每个会话是否会有线程/进程,或者线程/进程是否可以按需生成,在我知道操作需要很长时间的情况下
- 多线程时如何保留会话信息,即当浏览器不总是与同一个进程通信时?
- 关于舞者的任何具体建议(随时推荐舞者的替代品)
perl - How to serve robots.txt with Perl Dancer
I am trying to serve a robots.txt using the Perl Dancer web framework. I thought having a route that just returned the text would work, but it seems to be wrapping it in html
and body
tags. I'm assuming this won't be interpreted properly as a robots.txt file by crawlers.
Any idea how to do this properly?
Here is how I have the route written:
get '/robots.txt' => sub {
return "User-agent: *\nDisallow: /";
};
Thanks in advance!
perl - Dancer:同时处理多个请求
这是我的情况:我正在使用 Dancer 框架开发一个 Web 应用程序,我想从浏览器端向服务器端的数据库中插入一些数据。问题是,当数据太大时,上传需要很长时间,我正在考虑显示一个描述进度的进度条。
我通过发送两个请求来实现这一点:一个用于发布数据,另一个用于轮询状态。但似乎一旦处理了第一个请求,另一个请求将在第一个请求完成之前无法工作。所以状态没有返回任何东西,突然 100%。为了解决这个问题,我在处理第一个请求时创建了一个线程,因此主线程可以返回来处理第二个轮询请求。这工作得很好,直到我不得不杀死在子线程中产生的一些子进程(这是另一个问题)。
所以我的问题是,除了多线程之外,还有其他关于同时处理多个请求的想法吗?通常网络程序员如何处理这种情况?
dancer - Dancer 应用程序如何处理 HUP 信号以关闭/重新打开日志文件
我用日志配置写了一个 Dancer 应用程序:
并开始:
plackup -E 部署 -D -s Starman --workers=10 --port 8080 -a bin/app.pl
使用 logrotate 旋转日志文件
但新的日志文件为零。
我尝试在 logrotate conf 中添加 postrotate 以发送HUP并bin/app.pl
使用
Dancer::Logger::File::init;
但没有任何帮助。
谁能告诉我如何旋转舞者的日志文件?