Perl и Javascript

AnaStas

Well-Known Member
16.09.2008
52
0
#1
Добрый день. Видимо судьба свела меня с Вами за что и благодарен ей. Это как со здоровьем - желательно чтобы вели тебя одни и теже врачи:rolleyes:
А теперь по теме.
С сервера загружается Perl-файл, который из базы данных того же сервера читает записи (пока отладочные) и, переходя на код JS, по некоему сценарию заносит их (это тоже пока отладка) в массив (в дальнейшем эти структурированные записи должны сразу записываться в файлы у клиента, где он и будет, не "дергая" сервер, работать с ними (здесь уже JS). И только результирующий момент Perl-сценарием отправится на сервер в базу данных)
Это я для того написал, чтобы хоть какая-то логика при просмотре кода прослеживалась.
И так, Perl сгенерировал следующую страницу (META NAME="author" это не я, а наш главный):
Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HEAD>
<TITLE>mpultps</TITLE>
<META NAME="author"  CONTENT="Petr N. Alexeev">
<LINK REL="stylesheet" TYPE="text/css" HREF="a.css">
<LINK REL="icon" TYPE="image/gif" HREF="favicon.ico">
<LINK REL="shortcut icon" TYPE="image/gif" HREF="favicon.ico">
</HEAD>
<body>
<center>
<table class="page">
<tr><th class="page"><h1 class="page">Ускорительный Центр ИТЭФ</h1>ресурсы системы управления</th></tr>
<tr><td class="page">
<a href="/index.pl">
<img src="/img/boomy/up24.png" title="Вернуться в главное меню" border=0 align=left valign=middle>
</a><script type="text/javascript" src="edgroups.js"></script>
<script type="text/javascript">
<!--
// ========создаем массив групп каналов
var fls = new ActiveXObject("Scripting.FileSystemObject");
var grp_arr = new Array(); var chn_arr = new Array();
var outList;
grp_arr[0]=new Array();
grp_arr[0][0]=new Array();
grp_arr[0][0][0]=new Array('2');
grp_arr[0][0][1]=new Array('debug');
grp_arr[0][0][2]=new Array('Каналы используемые для отладки программного обеспечения');
grp_arr[0][1]=new Array();

grp_arr[1]=new Array();
grp_arr[1][0]=new Array();
grp_arr[1][0][0]=new Array('1');
grp_arr[1][0][1]=new Array('none');
grp_arr[1][0][2]=new Array('Каналы вне групп');
grp_arr[1][1]=new Array();

grp_arr[2]=new Array();
grp_arr[2][0]=new Array();
grp_arr[2][0][0]=new Array('3');
grp_arr[2][0][1]=new Array('Канал Б313');
grp_arr[2][0][2]=new Array('Управление каналом вывода из У-10');
grp_arr[2][1]=new Array();


//-->
</script>
<h2>Редактор групп каналов</h2>

<form name="Groups" method=POST>
<center><table width=100% border=1 bordercolor=blue>
<tr align="center"><th width=1% rowspan=5> </th><th width=10%> Группы</th><th width=1% rowspan=5> </th>
<th width=40%>Описание группы</th><th width=1% rowspan=5> </th width=20%><th> Каналы</th><th width=1% rowspan=5> </th>
<th> Каналы вне группы</th><th width=1% rowspan=5> </th></tr>

<tr><td><select name="Listgrp" size=12 onChange="grpChoice(this.selectedIndex)"></select></td>
<td><table border=0 bordercolor=blue><tr><td colspan=3><textarea name="txtgrp" rows=8 cols=30 wrap="physical"></textarea></td></tr>
<tr align="center"><td> Индекс</td><td width=1%> </td><td width=30%> Название</td></tr>
<tr><td width=5%><input type="text" name="idxgrp" value="" onFocus="this.blur();"></td><td width=1%> </td>
<td><input type="text" name="namgrp" value=""
onFocus="this.value=''"></td></tr></table></td>
<td><select name="Chanls" size=12></select></td>
<td><select name="Nogroup" size=12></select></td></tr>

<tr><td><input type="submit" name="cr_grp" value="Создать" onClick="addGroup(Listgrp.selectedIndex)">  
<input type="submit" name="del_grp" value="Удалить" onClick="delGroup(Listgrp.selectedIndex)"></td>
<td align="right"><input type="submit" value="Принять" onClick="descChang(Listgrp.selectedIndex)"></td>
<td align="center"><input type="submit" name="off_ch" value="====>>" onClick="delChanls(Chanls.selectedIndex)"></td>
<td align="center"><input type="submit" name="on_ch" value="<<====" onClick="addChanls(Nogroup.selectedIndex)"></td></tr>
</table></center></form><script type="text/javascript">
<!--

// Вывод списка групп каналов (только индексы и название)
outList = document.forms["Groups"].elements["Listgrp"];
onLoad=listOpt(outList,-1);
//-->
</script>
</body>
</HTML>
Я правильно Вас понял - это хотели посмотреть?
==========================
Прочитав Ваши ответы я снял у своего IE7 блокировки всех отладок ну, и получил:
Строка 21
Символ 1
Ошибка невозможно создание объекта сервером объектов
P.S.
Вообще-то я испытываю некоторую неловкость, что так мощьно загружаю Вас. Вы уж извините меня. Я постараюсь побыстрее набраться опыта <_<
С уважением AnaStas
 

Вложения

AnaStas

Well-Known Member
16.09.2008
52
0
#2
Да. Вы правы. Действительно все дело в наличии/отсутствии галочек в настройках и секюрити и узлов IE7. ;) Но что-то их многовато - пришлось повозиться (методом тыка). Одним словом, ActiveX дал добро. Чтобы запомнить надо будет Prt.Scr сделать. Ну, и как положено, преодалев одни проблемы, всплыли другие. :unsure: Пока повожусь сам с ними и если что-то... снова к Вам на прием.
Непонятно почему же всетаки вас заставляют так делать? в локальной сети тянуть файлы с сервера не так и тяжко.
Понимаете, я у них сотрудник новый и еще не вник в рабочую политику отдела. При поверхностном взгляде впечатление такое, что давным-давно, во времена VAX-ов ЕС-ов, СМ-ов, Вишен и Камаков отдельными кусками, разные люди что-то, чего-то крапали. Перестройка 90-х из одной психушки кинув всех и вся в другой дурдом не позволила начинаниям развиться. Разные спецы и студенты приходили, не задерживались. Последним пришел META NAME="author" - физик-ускорительщик. Сын руководителя всего ускорительного комплекса. Видимо, держа курс на кандидатскую, выбрал себе тему - создать единую базу данных всего комплекса, соответственно, опираясь уже на те заделы, которые были созданы.
Лично мне, наработав уже три! небольших модуля, и пообщавшись с Вами :( , кажется, что проще было бы разработать и отладить просто программные приложения и не связываться с броузерами. Это пока мое видение ситуаций на сегодняшний день.
Однако, дорогие модераторы, спасибо.
До новых встречь!
 

AnaStas

Well-Known Member
16.09.2008
52
0
#3
Добрый день. Ваши сомнения, вдруг, возымели действие - шеф сказал, что работа с использованием ActiveX его не устраивает. Где он был, когда тексты смотрел? Теперь надо срочно вникать, как организовать общую область памяти при смене страниц и вывод данных в поля таблицы без перезагрузки страницы. :)
 
V

Vovochka

Гость
#4
Для организации "общей памяти" можно использовать два приема.
1) Cookie (см. ограничения по размеру)
2) Где-то я видел скриптц, организующий подобный сторадж в window.title или как то так... Точно не помню, то там тоже есть свои проблемы.

А вообще, рекомендую все же хранить и обрабатывать все на сервере. Проблема перезагрузки решаеться средствами AJAX. Да при постинге в этот форум вы могли заметить что добавление сообщений идет без перезагрузки страницы (при использовании быстрой формы), а это благодоря тому что у вас стоит галочка "AJAX?". :(
Лично я бы порекомендовал вам ознакомиться с prototype.js, но большинство предпочитаете jQuery.
Вам это сто пудово облегчит жизнь :)
 

AnaStas

Well-Known Member
16.09.2008
52
0
#5
Все от Вас получил. Большое спасибо за помощь. Все, что посоветовали - обязательно отработаю. :(
Вопрос сейчас чисто консультативный:
Возможен-ли рабочий сценарий, который обрабатывает одну и ту же область данных (без cookies и файлов), где страница содержит чередующийся скрипт Perl->JS->Perl->JS... ?
С уважением, AnaStas
 

AnaStas

Well-Known Member
16.09.2008
52
0
#6
Все-таки познакомьтесь с ним - ]]>ajax]]>
Ну, это разумеетмя. Не только посмотрю, а и пощупаю и попробую протолкнуть. Как-то у меня был момент, когда я попросил главного разъяснить мне чем отличается язык программирования от технологии программирования (хотя примитивное понимание у меня было). Не помню оснований но он как-то не был восторге от аякса. Тем не менее, как и Вы, думаю, что этой технологией надо овладеть.