|
|
|
| Имеется сайт назовем его БАЗА, который предоставляет свой код для вставки на других сайтах назовем их юзерами. Код передает таблицы, изображения, ссылки, возможно графики.
Просьба отписать или скинуть литературы на русском, где можно прочесть, про аспекты интеграции.
Анализируя чужой код, пришел к таким выводам:
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); // возвращаем ответ
}
});
|
Помогите с советом, укажите на ошибки и не удобства в дальнейшем эксплуатировании. | |
|
|
|
|
|
|
|
для: Ванек2010
(04.08.2013 в 14:32)
| | $.ajax({type: 'POST'...
Этот метод не проверяет загружена ли уже библиотека, и если нет, то это естественно породит ошибку, а значит и скрипты перестанут работать.
Почитайте о динамическом подключении JS, и другие подобные статьи.
Проверить наличие у клиента jQuery можно более кратко - if(!window.jQuery) {...}
PS. И вообще, Ajax, это не так и страшно для понимания, всего лишь несколько строк кода, и грузить ради него jQuery это накладно (если она не используется на клиенте). Тем более ваш код не предусматривает ситуации когда Google будет вообще недоступен.
И ознакомится с document.write. | |
|
|
|