Perl и Javascript

AnaStas

Well-known member
16.09.2008
52
0
#1
Добрый день. Еле-еле вошел на форум, покрутила новая активация :blink:
В принципе тему можно закрывать, т.к. с Вашей помощью во всем разобрался, но в заключении хотелось бы получить Ваши замечания по общим вопросам. И так:
1. Структура документа Perl-JS-Perl-...-Perl
2. Работа в интрасети клиентов с базой данных
3. Для передачи данных из JS в Perl использую скрытую форму:
Код:
#!/usr/bin/perl -w
..........
use CGI qw(:standard);
use CGI qw(:standard escapeHTML);
use CGI::Carp qw(warningsToBrowser fatalsToBrowser);
use DBI;
#==авторизация пользователя======
............................
print " HTML-заголовок \n"

#== Скрытая форма для передачи данных на сервер============
print "
<form name=\"TransData\" style=\"display:none\">
<input type=\"text\" name=\"fromJS\">
</form>\n";
#== Прием данных от клиента если они есть ===================
if(param('fromJS')){
$server=param('fromJS'); # строку преобразуем в элементы массива.
$server=~m/^(.+)\,(.+)\,(.+)\,(.+)$/g;
@comand=($1,$2,$3,$4);
if ($comand[0] eq 'ins'){&grp_insert($comand[1],$comand[2]);}
if ($comand[0] eq 'upd'){&grp_update($comand[1],$comand[2],$comand[3]);}
if ($comand[0] eq 'del'){&grp_delete($comand[1]);}
}
#=== Запрос на чтение из базы одних данных =================
...............................................
#=== Запрос на чтение из базы других данных =================
............................................... и т.д.
#=== Обработка данных сценарием JavaScript=================
print "
<script type=\"text/javascript\" src=\"edgfuncs.js\"></script>
<script type=\"text/javascript\">
<!--
.................... в перемежку с Perl ........................... и т.д.
//-->
</script>
Завершаем HTML-кодом
#===сабрутины===================
....................................
Конец доумента.
В файле функций edgfuncs.js форматируем передаваемые данные и submit:
Код:
//=================================================== 
// Функция передачи данных из JavaScript в Perl на сервер
function toServer (mydata) {
document.TransData.fromJS.value = mydata;
document.TransData.submit()
}
Что интуитивно у меня вызывает сомнение, так это то, что HTML-код скрытой формы расположен слишком "высоко", а сценарий JS лежит в body. А распологать скрытую форму TransData ниже запросов к базе данных не могу, т.к. для отображения обновленных данных придется многократно загружать страницу. Ощущение такое, что все это как-то не согласуется с правильным программированием. Хотя работает все устойчиво.
Хотел бы прочесть Ваши замечания (после чего тему, видимо, можно считать закрытой)