2014-10-29 94 views
3

我正在開發一個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秒之後纔會發生,所以不能這樣。

+0

這看起來不像你的代碼中的問題。檢查服務器端的日誌,如果發現有什麼有趣的地方,請更新問題。它能否達到某些內存限制(特別是如果您在VPS上運行服務器)? – afenster 2014-10-30 07:34:32

+0

是的,我會看看我能找到什麼。你有什麼建議在哪裏可以找到這些日誌? – fluke4 2014-10-30 17:00:48

+1

您的描述聽起來像是一個重定向循環的瀏覽器行爲。 – harvey 2014-10-31 07:27:19

回答

2

我已經找出問題了!這對我來說已經有一個多月的問題了,我很高興它再次運作。我的問題是,當我開始morbo開發服務器,我用下面的命令:

morbo -w ~/web_dev/my_app script/my_app 

的-w讓我看更改目錄,這樣我就不用每次都重新啓動應用程序,我改變了我的一些JavaScript文件。我的問題是,我看到的目錄也包含我的日誌文件。所以每次去我的網頁時,日誌都會改變,服務器會重啓。

相關問題