Я разрабатываю веб-приложение с Mojolicious. Сервер разработки morbo - замечательная вещь, которая отлично работает, но как только я начну возвращать сложные хэши в стеке, а затем создавая веб-страницу, сервер morbo начнет действовать смешно. В моем браузере, если я перейду к одной из тех веб-страниц, которые используют сложный хэш, браузер скажет мне, что соединение было сброшено. Я должен обновить примерно 10-12 раз до загрузки страницы.Сервер Morbo работает только после постоянного обновления
Например:
Приведенный ниже код показывает один из моих контроллеров приложений. Он просто получает объект json из запроса AJAX, а затем возвращает другой объект 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