2014-10-29 2 views
3

Mojolicious로 웹 응용 프로그램을 개발하고 있습니다. morbo 개발 서버는 훌륭하게 작동하는 멋진 제품이지만 스택에서 복잡한 해시를 반환하고 웹 페이지를 렌더링하기 시작하면 morbo 서버가 재미있게 작동하기 시작합니다. 내 브라우저에서 복잡한 해시를 사용하는 웹 페이지 중 하나를 탐색하면 브라우저에서 연결이 재설정되었음을 알립니다. 페이지가로드되기 전에 약 10-12 번 새로 고침해야합니다.Morbo 서버는 상시 새로 고침 후에 만 ​​작동합니다.

예 :

아래 코드는 내 app 컨트롤러 중 하나를 보여줍니다. 단순히 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에서 앱으로 앞뒤로 데이터를 보내거나받는 것이 아니라면 상관 없습니다. 내가 템플릿을 렌더링하는 것 이상으로 내 웹 앱에 처리하는 양이 있다면 트리거하는 것처럼 보이지만, Hypnotoad를 실행하고 있다면 모든 것이 정상입니다.

이 예제는 많은 처리가 필요한 것은 아니지만 브라우저가 재설정되는 것을 볼 수 있으며 알 수 있듯이 아무 것도 실행하거나 정지 시키려면 시간이 오래 걸리지 않습니다. 나는 문제가 타임 아웃 문제라고 생각했지만 기본적으로 타임 아웃은 15 초가 지나기 전까지는 발생하지 않으므로 그렇게 될 수 없다.

+0

코드에서 문제가 아닌 것 같습니다. 서버 측에서 로그를 확인하십시오. 흥미로운 점이 있으면 질문을 업데이트하십시오. VPS에서 서버를 실행하는 경우 몇 가지 메모리 제한을 초과 할 수 있습니까? – afenster

+0

그래, 나는 내가 무엇을 찾을 수 있는지 보자. 내가 그 로그를 어디서 찾을 수 있는지에 대한 권고 사항이 있습니까? – fluke4

+1

브라우저 동작이 리디렉션 루프처럼 들립니다. – harvey

답변

2

문제를 파악했습니다. 이것은 지금 1 개월 넘게 나에게는 문제 였고, 다시 일할 수있어서 너무 기쁩니다. 내 문제는 내가 morbo 개발 서버를 시작했을 때, 나는 다음과 같은 명령을 사용하는 것이 었습니다 :

morbo -w ~/web_dev/my_app script/my_app 

을 -w 내가 응용 프로그램 매번 다시 시작해야 할 수 있도록 나를 변화에 대한 디렉토리를 볼 수 있습니다를 I 일부 자바 스크립트 파일을 변경했습니다. 내 문제는 내가 본 디렉토리가 내 로그 파일을 포함한다는 것입니다. 그래서 내 웹 페이지에 갈 때마다 로그가 바뀌고 서버가 다시 시작됩니다.

관련 문제