Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl Mojolicious为一个请求生成两个响应_Perl_Mojolicious - Fatal编程技术网

Perl Mojolicious为一个请求生成两个响应

Perl Mojolicious为一个请求生成两个响应,perl,mojolicious,Perl,Mojolicious,当路由回调时间过长时,mojolicious似乎会请求该路由两次,例如在本应用程序中: #!/usr/bin/env perl use Mojolicious::Lite; get '/' => sub { my $c = shift; $c->render_later; sleep(15); say "got here"; $c->render(template => 'index'); }; 当我请求“/”路由时,这是我在日志中得到的: [S

当路由回调时间过长时,mojolicious似乎会请求该路由两次,例如在本应用程序中:

#!/usr/bin/env perl
use Mojolicious::Lite;

get '/' => sub {
  my $c = shift;
  $c->render_later;

  sleep(15);
  say "got here";
  $c->render(template => 'index');
};
当我请求“/”路由时,这是我在日志中得到的:

[Sun Jan 31 20:53:17 2016] [debug] Your secret passphrase needs to be changed
[Sun Jan 31 20:53:17 2016] [debug] GET "/"
[Sun Jan 31 20:53:17 2016] [debug] Routing to a callback
got here
[Sun Jan 31 20:53:32 2016] [debug] Rendering template "index.html.ep" from DATA section
[Sun Jan 31 20:53:32 2016] [debug] Rendering template "layouts/default.html.ep" from DATA section
[Sun Jan 31 20:53:32 2016] [debug] 200 OK (15.007044s, 0.067/s)
[Sun Jan 31 20:53:32 2016] [debug] GET "/"
[Sun Jan 31 20:53:32 2016] [debug] Routing to a callback
got here
[Sun Jan 31 20:53:47 2016] [debug] Rendering cached template "index.html.ep" from DATA section
[Sun Jan 31 20:53:47 2016] [debug] Rendering cached template "layouts/default.html.ep" from DATA section
[Sun Jan 31 20:53:47 2016] [debug] 200 OK (15.005030s, 0.067/s)

所以我等了两次,我注意到了这一点,因为我有一个应用程序,它必须下载XML并提取信息,这要花很长时间

正如Daskwuff已经提到的,这似乎是一个浏览器问题。有了上面的文件和附加的“app->start”,我可以用Mojolicious 6.14和Chrome48复制它。使用Firefox44,只有一个请求


似乎Chrome开发者在网站花费的时间太长时,会做出典型的用户“重新加载”行为,这已经是默认行为了。

你确定不是你的浏览器提出了额外的请求吗?