Вот протсой пример. Какие задачи вы хотите решить?
<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetTitle("AJAX");
CJSCore::Init(array('ajax'));
$sidAjax = 'testAjax';
if(isset($_REQUEST['ajax_form']) && $_REQUEST['ajax_form'] == $sidAjax){
$GLOBALS['APPLICATION']->RestartBuffer();//сбрасываем буфер контента функцией $APPLICATION->RestartBuffer().
//А в конце просто выходим. Тем самым мы отдаем только нужный кусок контента при аякс запросе.
echo CUtil::PhpToJSObject(array(//PhpToJSObject Преобразует массив PHP в js
'RESULT' => 'HELLO',
'ERROR' => ''
));
die();
}
?>
<div class="group">
<div id="block"></div >
<div id="process">wait ... </div >
</div>
<script>
window.BXDEBUG = true;
// window - Административная оконная библиотека
//Расширение window (core_window.js). Данный вид окон используется в для работы административных интерфейсов.
// Для публичных интерфейсов следует использовать расширение popup.
function DEMOLoad(){
//BX Функция для сокращения примитивных действий. Действие зависит от типа параметра param:
//Строка: функция вернет ссылку на узел DOM-структуры с идентификатором param. (Действие будет аналогично document.getElementById, но экономит ресурсы.)
//Ссылка на узел DOM-структуры: функция вернет ссылку без изменений.
//Функция: функция будет установлена в качестве обработчика псевдо-события BX.ready.
BX.hide(BX("block"));
BX.show(BX("process"));
BX.ajax.loadJSON(
'<?=$APPLICATION->GetCurPage()?>?ajax_form=<?=$sidAjax?>',
DEMOResponse
);
}
//BX.ajax.loadJSON Функция загружает json-объект из заданного url и передает его обработчику callback.
//GetCurPage Возвращает путь к текущей странице относительно корня. Нестатический метод.
//BX.ajax.loadJSON - Функция загружает json-объект из заданного url и передает его обработчику callback.
//.hide() скрыть С помощью этой функции можно плавно показывать и скрывать выбранные элементы на странице, за счет изменения размера и прозрачности.
//.show() - показать Возвращает: jQuery Описание: С помощью этой функции можно плавно показывать и скрывать выбранные элементы на странице, за счет изменения размера и прозрачности.
function DEMOResponse (data){
BX.debug('AJAX-DEMOResponse ', data);
BX("block").innerHTML = data.RESULT;
BX.show(BX("block"));
BX.hide(BX("process"));
BX.onCustomEvent(
BX(BX("block")),
'DEMOUpdate'
);
}
//BX.onCustomEvent Функция позволяет два варианта входных параметров.
//Функция вызвает все обработчики события eventName для объекта eventObject, а также, все глобальные обработчики
// (назначенные без указания объекта). Если не указан объект, в котором возникает событие, то будут вызваны только
// глобальные обработчики. Обработчик будет выполнен в контексте объекта, в котором возникло событие.
// Значения из массива arEventParams будут переданы в качестве входных параметров обработчика..
BX.ready(function(){
/*
BX.addCustomEvent(BX("block"), 'DEMOUpdate', function(){
window.location.href = window.location.href;
});
*/
BX.hide(BX("block"));
BX.hide(BX("process"));
BX.bindDelegate(
document.body, 'click', {className: 'css_ajax' },
function(e){
if(!e)
e = window.event;
DEMOLoad();
return BX.PreventDefault(e);
}
);
//BX.bindDelegate Функция устанавливает обработчик handler события eventName на дочерние элементы узла node,
// удовлетворяющих условиям isTarget. Нюансом метода является независимость от изменений содержимого node: физически обработчик
//вешается на сам узел node и принимает событие в момент его всплывания от дочерних элементов.
//event.preventDefault()Возвращает: undefined
//Описание: Отменяет выполнение события. Например, при "клике" по ссылке, переход по ней не произойдет, если внутри
//обработчика будет вызван этот метод.
});
</script>
<div class="css_ajax">click Me</div>
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>
Напишите скрипт, который сгенерирует файл экспорта highload инфоблока с 1 300 000 элементов.
Потом сделайте импорт записей в highload инфоблок
После этого расскажите коллегам если не сложно какие результаты получили.
-там будет ограничено время выполнения скриптов, и с его данными он точно выйдет за доступные лимиты.
зачем XML
- я писал про функционал обмена с сайтом, там XML, как раз JSON я не видел
- я думаю у автора сейчас нет 1с номенклатуры с 200к товаров для тестов выгрузки в JSON
noute, Ваши ответы вас как раз не красят, наверное стоит посмотреть в зеркало, вам я дал совет как фактор почему стоит принять решение помимо профессиональных моментов, если вас это задело можно было вежливо сказать, что совет не интересует. Вы же мне начали писать про рентв хотя я вам вопросы не задавал, с намеками на уровне кастрюлеголовых товарищей из одной великой аграрной державы.
200к товаров простые или вариативные?
Если вы хотите получить реальные данные, то я бы сделал так:
1) Взял хотя бы как минимум VPS
2) Написал бы скрипт, который сгенерировал бы файл XML (в обмене 1с как раз XML используются) с 200к товарами
3) Установил демо сайт с нужной cms
4) Сделал бы импорт и посмотрел какие проблемы в cms возникнут
Надежда Головина, catalog.section отдельный или в составе комплексного компонента каталога?
Вы сами написали код или не понимая что делаете просто копируете?
Вы похоже либо врёте завышая свои навыки либо не договариваете, так как Вам ничего не мешает на полставки 3-4 часа в день подрабатывать на фрилансе получая по сути вторую зарплату.