Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Правильная интеграция с другим сайтом
 
 автор: Ванек2010   (04.08.2013 в 14:32)   письмо автору
 
 

Имеется сайт назовем его БАЗА, который предоставляет свой код для вставки на других сайтах назовем их юзерами. Код передает таблицы, изображения, ссылки, возможно графики.
Просьба отписать или скинуть литературы на русском, где можно прочесть, про аспекты интеграции.
Анализируя чужой код, пришел к таким выводам:
1. Вставляется код на сайт юзера, на чистом JSe, такого вида:
<script type="text/javascript">  
    var pid = 235; // id проекта
    var qs = document.createElement('script');
    qs.type = 'text/javascript'; 
    qs.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'basesite.ru/test.js';
    var ss = document.getElementsByTagName('script')[0]; 
    ss.parentNode.insertBefore(qs, ss);
</script>

Данный код загружает на сайт юзера файл test.js
2. Как я понял начинка test.js может быть разной, но т.к. из библиотек знаком только с jQuery, то мне предпочтительнее ее использовать.
// Проверяем, используется ли jQuery на данном сайте
    if (typeof(jQuery) == 'undefined') { // Если нет, то подключаем
        var JQ = document.createElement('script');
        JQ.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js';
        JQ.type = 'text/javascript';
        document.getElementsByTagName('head')[0].appendChild(JQ);
    }
    
    // Добавляем тег div, куда будет помещен ответ от сайта БАЗА
    document.write('<div id="response"></div>');
    
    // Передаем id проекта сайту БАЗА и получаем данные 
    $.ajax({
        type: 'POST', // передаем данные методом POST
        url:  'basesite.ru/handler.php', // обработчик сайта БАЗА
        cache: false,
        data: {    
                project_id: pid, // id проекта
                type_data:     'table', // что вернуть таблицу, картинку, график и т.д.
            },
        success: function(html) {

                $('#response').html(html); // возвращаем ответ
                    
            }
        });

Помогите с советом, укажите на ошибки и не удобства в дальнейшем эксплуатировании.

  Ответить  
 
 автор: confirm   (04.08.2013 в 15:23)   письмо автору
 
   для: Ванек2010   (04.08.2013 в 14:32)
 

$.ajax({type: 'POST'...
Этот метод не проверяет загружена ли уже библиотека, и если нет, то это естественно породит ошибку, а значит и скрипты перестанут работать.
Почитайте о динамическом подключении JS, и другие подобные статьи.

Проверить наличие у клиента jQuery можно более кратко - if(!window.jQuery) {...}

PS. И вообще, Ajax, это не так и страшно для понимания, всего лишь несколько строк кода, и грузить ради него jQuery это накладно (если она не используется на клиенте). Тем более ваш код не предусматривает ситуации когда Google будет вообще недоступен.

И ознакомится с document.write.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования