我正在開發一個Mojolicious的Web應用程序。 morbo開發服務器是一件非常棒的事情,但是一旦我開始在堆棧中返回複雜的哈希,然後渲染網頁,morbo服務器就會開始變得有趣。在我的瀏覽器中,如果我瀏覽到使用複雜散列的網頁之一,瀏覽器會告訴我連接已被重置。在頁面加載之前,我必須刷新約10-12次。Morbo服務器只有在不斷刷新後才能工作
例如:
下面的代碼示出了我的應用程序控制器中的一個。它只是從一個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秒之後纔會發生,所以不能這樣。
這看起來不像你的代碼中的問題。檢查服務器端的日誌,如果發現有什麼有趣的地方,請更新問題。它能否達到某些內存限制(特別是如果您在VPS上運行服務器)? – afenster 2014-10-30 07:34:32
是的,我會看看我能找到什麼。你有什麼建議在哪裏可以找到這些日誌? – fluke4 2014-10-30 17:00:48
您的描述聽起來像是一個重定向循環的瀏覽器行爲。 – harvey 2014-10-31 07:27:19