Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Подключение web-app со стороннего сайта
AllesKlar  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 3375
Пользователь №: 38635
На форуме: 2 года, 11 месяцев, 10 дней
Карма: 170




Всем бобра.

Введение:
Имеется этакое типа web-app и клиенты (здесь и далее "клиент" - это экономическое значение слова, а не техническое) его пользуют.
Выглядит это пока что так:

user posted image

На нашем сервере расположено само приложение (APP), а так же для каждого клиента его директория, где лежат его конфиги и опционально индивидуальные темплейты и яваскрипты.

Обращение к клиентскому приложению такое: http://site.com/client_1
Конфиги прочитало, ядро АРР подгрузило, в браузер выдало.

У некоторых клиентов есть свои сайты и они хотят видеть APP-у на нем (не размещать физически).
Пока что это реализовано iframe-ом

iframe как и goto - стыд, позор и вечная головная боль разработчика :)
Хочется от него избавится.
file_get_contents() и прочие php-шные приблуды не подходят, т.к. внешний интерфейс клиента - это максимум дизайнер, разбирающийся в css, html и немножечко в женщинах.

Пока что идея что-то типа:
клиент размещает у себя
<script src='http://site.com/client_1/connector.js'></script>
<div
id='app_wrap'></div>

И яваскриптом подкачиваем весь контент с нашего сервера.
Какие особенности могут подстерегать:
- переписать все аяксовские вызовы на JSONP
- ввести namespace для всех id, классов, переменных, функций в html, css, javascript

Это то, что уже придумалось.
Наверняка будут грабли и хотелось бы ими как можно меньше по лбу получить.

Собственно вопрос:
реализовывал ли кто-нибудь подобное? Какие проблемы могут возникнуть в предложенном мной варианте? Может есть другая идея?


--------------------
[продано копирайтерам]
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 14974
Пользователь №: 4190
На форуме: 8 лет, 10 месяцев, 1 день
Карма: 443




Я ничего такого не реализовывал, но....

Цитата (AllesKlar @ 14.11.2015 - 05:22)
iframe как и goto - стыд, позор и вечная головная боль разработчика smile.gif

Не вижу проблем в использовании iframe. Назови хотя бы одну причину, почему это "стыд, позор и вечная головная боль".

Цитата (AllesKlar @ 14.11.2015 - 05:22)
Какие проблемы могут возникнуть в предложенном мной варианте?

Клиент может захотеть реализации специфического дизайна для именно своего сайта. Вы готовы делать специфический софт для каждого клиента?


--------------------
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
killer8080  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 8737
Пользователь №: 26630
На форуме: 5 лет, 9 месяцев, 5 дней
Карма: 591




header('Access-Control-Allow-Origin: *');
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
AllesKlar  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 3375
Пользователь №: 38635
На форуме: 2 года, 11 месяцев, 10 дней
Карма: 170




Цитата (sergeiss @ 14.11.2015 - 03:22)
Вы готовы делать специфический софт для каждого клиента?

Конечно.
В схеме написано же, индивидуальные темплейты и даже индивидуальные яваскрипты. У клиента доступ в свой каталог темплейтов на нашем сервере полный.

И даже специфический контроллер доступен, который работает, как расширение стандартного smile.gif
В общем, АППа по мотивам вот этого:
http://phpforum.su/index.php?showtopic=78814

Цитата
Назови хотя бы одну причину, почему это "стыд, позор и вечная головная боль".

Достаточно того, что нет доступа из яваскрипта к родительскому окну.
Это нужно для перехода по страницам клиента.
Т.е. у АППы есть несколько страниц, и под каждую страницу клиент хочет свою страницу на своем сайте.
А в iframe оно все крутится в коробочке.
Далее, при изминении пользовательского дизайна, нужно лезть в код клиентского сайта, чтобы менять размеры окна iframe. А, т.к. на разных шагах у АППы разный размер, то iframe выглядит в итоге ужасно.

killer8080
псиб, учтемс


--------------------
[продано копирайтерам]
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 14974
Пользователь №: 4190
На форуме: 8 лет, 10 месяцев, 1 день
Карма: 443




Цитата (AllesKlar @ 14.11.2015 - 12:51)
Достаточно того, что нет доступа из яваскрипта к родительскому окну.

Извини, но если ты не знаешь о наличии техниологий и/или "не умеешь их готовить", то это не значит, что этого нет wink.gif

Пруф-линк: https://learn.javascript.ru/cross-window-me...ith-postmessage "...Интерфейс postMessage позволяет общаться друг с другом окнам и ифреймам с разных доменов...."

PS. Ну или вот тебе более официальный сайт: https://developer.mozilla.org/en-US/docs/We...dow/postMessage

Лично я бы лучше развил использование айфрейма. Это позволит унифицировать всё, создать более гибкую, универсальную систему.

Это сообщение отредактировал sergeiss - 14.11.2015 - 13:45


--------------------
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
AllesKlar  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 3375
Пользователь №: 38635
На форуме: 2 года, 11 месяцев, 10 дней
Карма: 170




sergeiss
Цитата
Получатель: событие onmessage
Чтобы получить сообщение, окно должно поставить обработчик на событие onmessage.

Этого достаточно, чтобы не использовать.

Мы не можем отвечать за код, размещенный на сайте клиента.
Клиент же должен писать там обработчик.
А потом нам в суппорт будут сыпаться тикеты: нифига не работает / работает не так.
Мы, конечно же, найдем багу у клиента, покажем ему, и это будет бесплатно.
А потом шеф уволит отдел разработки, т.к. он весь превратится в перманентный суппорт smile.gif

Подключение должно быть очень простым.
Как гугло-карта.

Ты мыслишь как разработчик, а надо, как говно-менеджер (С) smile.gif
Клиент - это предприниматель, ему кто-то когда-то написал сайт, сайт работает.
Теперь он покупает наш модуль и нужно его малой кровью интегрировать в сайт.
Если ему придется дополнительно кому-то (пусть даже нам) платить еще за установку модуля (т.е. за написание хендлеров к нашему iframe) он нас пошлет в Ж smile.gif

Не, с iframe систематически вылазиют разные неудобства, и было четкое указание: похерить его к чертям smile.gif


--------------------
[продано копирайтерам]
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
vagrand  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2667
Пользователь №: 18145
На форуме: 7 лет, 5 месяцев, 15 дней
Карма: 84




Не знаю деталей вашей апп, но почему бы не сделать при помощи удалённых js файлов, которые бы грузились динамически, генерились при помощи php и после своей загрузки выполнять ли бы какой-то js код уже на сайте клиента?


--------------------
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.
PMПисьмо на e-mail пользователю
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
AllesKlar  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 3375
Пользователь №: 38635
На форуме: 2 года, 11 месяцев, 10 дней
Карма: 170




Цитата (vagrand @ 14.11.2015 - 15:23)
Не знаю деталей вашей апп, но почему бы не сделать при помощи удалённых js файлов, которые бы грузились динамически, генерились при помощи php и после своей загрузки выполнять ли бы какой-то js код уже на сайте клиента?

О! Интересная тема, надо подумать.


--------------------
[продано копирайтерам]
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
icedfox  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 395
Пользователь №: 41702
На форуме: 1 год, 3 месяца, 23 дня
Карма: 13




AllesKlar, не пробовали смотреть в сторону CNAME ?
Есть ваш УРЛ : http://site.com/client_1
Есть свой сайт у клиента : http://megasite.com/

Клиент на хостинге или у регистратора прописывает CNAME в ДНС записях до вашего сайта например:
megasite.com. CNAME site.com/client_1.

или для поддомена (http://toptop.megasite.com/ )
toptop CNAME site.com/client_1.


Обратите внимание на точки, забыв их, вы будете долго искать, почему не работает.
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса