Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.05.2009, 04:15
Новичок на форуме
Отправить личное сообщение для AlexAndreev Посмотреть профиль Найти все сообщения от AlexAndreev
 
Регистрация: 27.05.2009
Сообщений: 5

Работа с DOM на стороне сервера
Здравствуйте. Ситуация следующая - есть клиент-серверное приложение, клиентская часть реализована веб интерфейсом (HTML+JS), сервер - PHP+pgSQL. Приложение уже заполнено данными (около 23 тысяч объектов учета) и стала задача перенести эти данные в другое приложение. Попробовал писать SQL запросы на вытягивание данных, и оказалось, что внутри программы все запущено - каждая запись об объекте учета разбивается на несколько таблиц, во всю используются хранимые процедуры и прочие навороты.
В то же время, интерфейс программы достаточно удобен, и если ручками нажать на кнопку - программа отдает данные в удобном виде, что и пародило идею сгрести данные манипулируя интерфейсом (точнее DOM'ом). Поэтому, требуется совет - как заставить javascript выполняться на сервере, и формировать в памяти DOM, чтобы я потом мог к ней легко обратиться?

P.S. Вариант user.js мне не подходит - нужно иметь возожность вести лог, сразу писать прочитаные данные в файл\СУБД, так что желателен все же php и какая-нибудь библиотека к нему, которая поможет работать с объектной моделью документа.
Ответить с цитированием
  #2 (permalink)  
Старый 27.05.2009, 08:01
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

DOM FUnction из стандартных функций я бы вам советовал,и н е морочится с JS
http://j4p5.sourceforge.net/
Ответить с цитированием
  #3 (permalink)  
Старый 27.05.2009, 09:04
Новичок на форуме
Отправить личное сообщение для AlexAndreev Посмотреть профиль Найти все сообщения от AlexAndreev
 
Регистрация: 27.05.2009
Сообщений: 5

начал читать за PHP DOM, интересная вещь, не знал, спасибо.
Если я правильно понял, мне можно сделать так - загрузить текст страницы через file_get_contents, пройтись по нему SimpleXML'ем, и преобразовать в DOM. А JS который на такой странице будет, он подтянется?
Там просто динамические страницы, документ формируется на лету (к примеру пользователь нажал на кнопку - ему окошко и выскочило, до этого его не существовало).
Ответить с цитированием
  #4 (permalink)  
Старый 27.05.2009, 10:01
Новичок на форуме
Отправить личное сообщение для AlexAndreev Посмотреть профиль Найти все сообщения от AlexAndreev
 
Регистрация: 27.05.2009
Сообщений: 5

слушайте, а может есть у кого нибудь доведенный "до ума" движок Gecko или WebKit, работающие в консольном режиме? Чтоб я скормил ему ссылку, а он мне передал указатель на весь построенный DOM? Или такое сделать нереально? Времени просто не очень много, не охота лезть в дебри чужого кода
Ответить с цитированием
  #5 (permalink)  
Старый 27.05.2009, 10:02
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от AlexAndreev
можно сделать так - загрузить текст страницы через file_get_contents, пройтись по нему SimpleXML'ем, и преобразовать в DOM
можно сделать так
помимо SimpleXML есть еще и другие инструменты па парсингу HTML-а
я бы рекомендовал именно DOM Function, которые соответсвуют спецификации DOM
Сообщение от AlexAndreev
А JS который на такой странице будет, он подтянется?
нет. это просто инстрeмент для обработки (X)HTML/XML
Никакого JS выполнятся не будет.
для этого я вам дал вторую ссылку
правда, подойдет ли вам это я не уверен.
если не ошибаюсь это интепретатор JS написанный на PHP
но не думаю, что он эмулирует все абсолютно полностью

я бы на вашем месте и не стремился бы устроить работу JS-а на сервере.
посмотрите, какую логику выполняет JS в клиенте.
какие данные посылает, и какие принимает
на основании этого составьте программу, которая бы сама загружала запросы, анализировала их результат с помошью DOM Function и переходила по новым запросам

PS
если же желания разбиратся на таком уровне в логике скрипта нету, то тогда только клиентскача сторона+ user.js
с его помощью получаете что надо со страницы, и отправляете на сервер, где PHP уже сделает что надо
Ответить с цитированием
  #6 (permalink)  
Старый 27.05.2009, 10:11
Новичок на форуме
Отправить личное сообщение для AlexAndreev Посмотреть профиль Найти все сообщения от AlexAndreev
 
Регистрация: 27.05.2009
Сообщений: 5

да, пожалуй вы правы, и мимо user.js мне не пройти
Подскажите тогда такую вещь - слышал, что браузер блокирует отправку AJAX запросов на другой узел, если основная страница загружена не оттуда. Ну к примеру, программа, которую мне нужно расковырять работает на хосте 10.0.0.5, а я буду пытаться отправлять данные на 127.0.0.1. Мне этот фокус удастся?
Ответить с цитированием
  #7 (permalink)  
Старый 27.05.2009, 15:26
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

если вы конвертируете данные со своего проекта на другой свой, почему бы временн не разместить их на одном хосте?
можно, но с определенными ограничениями
http://javascript.ru/ajax/cross-domain-scripting
Ответить с цитированием
  #8 (permalink)  
Старый 27.05.2009, 21:39
Новичок на форуме
Отправить личное сообщение для AlexAndreev Посмотреть профиль Найти все сообщения от AlexAndreev
 
Регистрация: 27.05.2009
Сообщений: 5

Большое спасибо за советы и линки. Сейчас буду использовать на практике )
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сохранение дерева DOM в файл Александр1985 Общие вопросы Javascript 7 24.01.2009 23:15
Загрузка дополнительного js кода с сервера Anonymous2008 Общие вопросы Javascript 5 20.11.2008 12:33
передача массива с сервера subaru Общие вопросы Javascript 3 02.07.2008 19:57