Ajax Morbo服务器只有在不断刷新后才能工作

Ajax Morbo服务器只有在不断刷新后才能工作,ajax,perl,mojolicious,Ajax,Perl,Mojolicious,我正在用Mojolicous开发一个web应用程序。morbo开发服务器是一个非常棒的东西,它工作得非常好,但是一旦我开始在堆栈上返回复杂的哈希值,然后呈现一个网页,morbo服务器就会开始表现得很有趣。在我的浏览器中,如果我浏览到其中一个使用复杂哈希的网页,浏览器会告诉我连接已重置。我必须刷新大约10-12次才能加载页面 package MyApp::Controller::Library; use Mojo::Base 'Mojolicious::Controller'; use Mojo

我正在用Mojolicous开发一个web应用程序。morbo开发服务器是一个非常棒的东西,它工作得非常好,但是一旦我开始在堆栈上返回复杂的哈希值,然后呈现一个网页,morbo服务器就会开始表现得很有趣。在我的浏览器中,如果我浏览到其中一个使用复杂哈希的网页,浏览器会告诉我连接已重置。我必须刷新大约10-12次才能加载页面

package MyApp::Controller::Library;
use Mojo::Base 'Mojolicious::Controller';

use Mojo::Asset::File;
use MyApp::Model::Generate;
use MyApp::Model::Database;
use MyApp::Model::IpDatabase;
use Mojo::JSON qw(decode_json);

# Receives a json object from an AJAX request and
# sends the necessary information back to be
# displayed in a table.
sub list_ajax_catch {
    my $self = shift;

    my $json  = $self->param('data');
    my $input = decode_json $json;

    $self->render(
        json => {
            "Object A" => {
                "name"        => "Object A's Name",
                "description" => "A Description for Object A",
                "height"      => "10",
                "width"       => "5",
            }
        }
    );
}

1;
例如:

下面的代码显示了我的一个应用程序控制器。它只是从AJAX请求中获取一个json对象,然后返回一个不同的json对象。它工作正常,只是浏览器需要刷新一千次才能加载

package MyApp::Controller::Library;
use Mojo::Base 'Mojolicious::Controller';

use Mojo::Asset::File;
use MyApp::Model::Generate;
use MyApp::Model::Database;
use MyApp::Model::IpDatabase;
use Mojo::JSON qw(decode_json);

# Receives a json object from an AJAX request and
# sends the necessary information back to be
# displayed in a table.
sub list_ajax_catch {
    my $self = shift;

    my $json  = $self->param('data');
    my $input = decode_json $json;

    $self->render(
        json => {
            "Object A" => {
                "name"        => "Object A's Name",
                "description" => "A Description for Object A",
                "height"      => "10",
                "width"       => "5",
            }
        }
    );
}

1;
问题不限于此情况。似乎每当服务器上有大量处理时,浏览器就无法重置。无论使用哪种浏览器,我都尝试过Chrome、IE、Firefox和其他浏览器(在多台计算机上)。如果我没有从html向应用程序来回发送或接收数据,这并不重要。所有似乎触发它的是,如果我的web应用程序中有任何数量的处理,而不仅仅是渲染模板,但如果我运行的是Hypnotoad,一切都很好


这个例子并不需要大量处理,但它确实会导致浏览器重置,正如您所看到的,运行或冻结任何内容不会花费很长时间。我原以为是超时问题,但默认情况下,超时要到15秒后才会发生,所以不可能是这样

我已经解决了这个问题!这对我来说已经有一个多月的时间了,我很高兴它又起作用了。我的问题是,当我启动morbo开发服务器时,我使用了以下命令:

morbo -w ~/web_dev/my_app script/my_app

w允许我监视目录的更改,这样我就不必每次更改一些JavaScript文件时都重新启动应用程序。我的问题是,我观看的目录也包含我的日志文件。因此,每次我访问我的网页时,日志都会更改,服务器会重新启动。

这在您的代码中看起来不是问题。检查服务器端的日志,如果您发现有什么有趣的地方,请更新问题。它能达到一些内存限制吗(特别是如果你在VPS上运行服务器的话)?是的,我看看能找到什么。你对我在哪里可以找到这些日志有什么建议吗?你描述的浏览器行为听起来像一个重定向循环。日志很容易找到,很抱歉。是的,我看了他们,他们没有表现出任何帮助。失败后,这就是我得到的(见下文):
[Fri-Oct 31 09:05:51 2014][debug]GET”/librarygrid。[Fri Oct 31 09:05:51 2014][debug]路由到控制器“IpdmWeb::controller::Library”和操作“gen_Library_grid”。[Fri Oct 31 09:05:53 2014][debug]呈现模板“librarygrid.html.ep”。[Fri-Oct 31 09:05:53 2014][debug]呈现模板“layouts/default.html.ep”。[Fri Oct 31 09:05:53 2014][debug]200正常(1.525676s,0.655/s)。[Fri-Oct 31 09:06:21 2014][debug]GET”/librarygrid.