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 초가 지나기 전까지는 발생하지 않으므로 그렇게 될 수 없다.
코드에서 문제가 아닌 것 같습니다. 서버 측에서 로그를 확인하십시오. 흥미로운 점이 있으면 질문을 업데이트하십시오. VPS에서 서버를 실행하는 경우 몇 가지 메모리 제한을 초과 할 수 있습니까? – afenster
그래, 나는 내가 무엇을 찾을 수 있는지 보자. 내가 그 로그를 어디서 찾을 수 있는지에 대한 권고 사항이 있습니까? – fluke4
브라우저 동작이 리디렉션 루프처럼 들립니다. – harvey