Как передавать большие данные между страницами в Perl / CGI?

#html #perl #cgi

#HTML #perl #cgi

Вопрос:

Я много работал со страницами CGI и имел дело с файлами cookie и хранением данных в каталоге / tmp в Linux. По сути, я выполняю запрос для миллионов записей, используя SQL, и сохраняю его в формате хэша. Я хочу передать эти данные в Ajax (который в конечном итоге выполнит некоторые вычисления и вернет график с использованием Google API.

Или я хочу, чтобы он каким-то образом передавал эти данные на другую страницу CGI.

PS: Данные, о которых я здесь говорю, представлены в формах размером более 10-100 МБ.

До сих пор я сохранял эти данные в файле на сервере, но опять же, для каждого запроса приходится иметь дело с этими данными на сервере.

Комментарии:

1. Не могли бы вы показать немного больше вашей текущей или желаемой архитектуры? Если вы могли бы использовать данные на «другой странице CGI», почему бы просто не позволить этой странице CGI выполнять SQL-запрос? Если только вам не нужно, чтобы данные «сохранялись» для другого запроса или для какого-либо другого процесса. Кроме того, я согласен с беспокойством w / Джима Брандта по поводу переноса 100 МБ в браузер. Если у вас есть доступ к данным на сервере, и сервер может выполнять функции Google API, позвольте ему обрабатывать большие данные. Просто передайте браузеру информацию, которую пользователь должен видеть, и / или AJAX-хаки, чтобы браузер мог получать больше данных.

2. Я использую данные, поступающие из базы данных, на обеих страницах. Я просто хочу знать, что опытные программисты используют для оптимизации загрузки страницы по сравнению с большими наборами данных, передаваемыми между двумя страницами.

Ответ №1:

Вы не упомянули, почему так сложно работать с данными на сервере для каждого запроса, но, предполагая, что проблема связана с файлом, DBM::Deep может относительно упростить запись хэша и получение его обратно. Получив это, вы могли бы создать простой скрипт для возврата его в формате JSON и доступа к нему по мере необходимости с Javascript или других страниц. Хотя я думаю, что браузер может замедлиться со структурой данных JSON размером 100 МБ.

Комментарии:

1. Это непросто, поскольку для каждого пользователя по запросу мне приходится создавать новый файл, хранить данные, извлекать их, а затем удалять этот файл с сервера.

2. Я не проверял DBM:: Deep, согласен, браузер действительно замедляется, но как только он будет в браузере, мне нужен самый быстрый способ использовать эти данные для разных страниц CGI. (Одно время ожидания загрузки нормально), но мне было интересно, как быстрее всего использовать те же данные между страницами.

3. Я думаю, вам придется подумать о некотором редизайне ваших страниц, вероятно, с использованием iframe (или фрейма), чтобы корневой фрейм выполнял первоначальный запрос и сохранял структуру. Тогда страницы, загруженные в iframe, могут обращаться к объекту в корневой структуре, устраняя необходимость запрашивать данные у самого сервера.