Мне очень нравится простота вызовов xajax с PHP, однако проект xajax кажется мертвым к настоящему времени … Есть ли хорошая альтернатива или эквивалент xajax, который активно развивается?
Ну, во всем моем проекте я пишу весь код javascript, используя jQuery . Это очень мощная библиотека javascript, которая имеет полный арсенал DOM-манипуляции и код запроса AJAX.
Есть несколько попыток инкапсулировать jQuery в php, поэтому код jQuery можно вызвать внутри php-кода, и соответствующий код jQuery будет включен в вывод страницы. Но для себя я предпочитаю писать весь код javascript внутри тегов script
в файле view
(я использую CodeIgniter).
jQuery активно развивается, и последняя версия (1.4) запускается всего несколько дней назад.
Новая альтернатива Xajax – sijax. Хотя официальная поддержка указана в модуле python, существует gijub-хостинг проекта sijax. Это библиотека PHP, которая интегрирует менталитет объекта JQuery и xajax, чтобы обеспечить быструю и простую usecase, но мощный бэкэнд.
Да, пожалуйста, взгляните на PHPLiveX . Он легкий, и там с дальнейшим развитием. благодаря
Пример кода:
function generateRandomCode($length){ $chars = array("1","2","3","4","5","6","a","b","c","d","e","f"); $code = array_rand(array_flip($chars), $length); return implode($code); } // Necessary PHPLiveX Codes include("PHPLiveX.php"); $ajax = new PHPLiveX(array("generateRandomCode")); $ajax->Run(); // Must be called inside the 'html' tags. <input onclick="generateRandomCode(10, {'target':'rcode','preloader':'pr'});" type="button" value="Generate Random Code" > <img id="pr" src="design/Progressbar2.gif" style="visibility:hidden;"> <span id="rcode"></span>
вfunction generateRandomCode($length){ $chars = array("1","2","3","4","5","6","a","b","c","d","e","f"); $code = array_rand(array_flip($chars), $length); return implode($code); } // Necessary PHPLiveX Codes include("PHPLiveX.php"); $ajax = new PHPLiveX(array("generateRandomCode")); $ajax->Run(); // Must be called inside the 'html' tags. <input onclick="generateRandomCode(10, {'target':'rcode','preloader':'pr'});" type="button" value="Generate Random Code" > <img id="pr" src="design/Progressbar2.gif" style="visibility:hidden;"> <span id="rcode"></span>
Я не думаю, что есть более продвинутая библиотека PHP / jQuery / AJAX, чем моя библиотека Phery ( http://phery-php-ajax.net/ ), которая ее использует и кодирует уже более 2 лет. Тесная связь со всем, что может предложить jQuery, – esplendid, и поддерживает последние, настоящие и будущие версии jQuery автоматически
Вы даже можете получить доступ к исходному вызывающему элементу, используя PheryResponse::factory()->this()
, вы можете манипулировать любым DOM на странице непосредственно изнутри PHP и даже передавать необработанные обратные вызовы javascript в jQuery из PHP, используя класс PheryFunction
Пример кода:
Phery::instance() ->set(array( // You don't need to use lambda functions, but it's the power of PHP 5.3 ;) 'alias-for-function' => function($ajax_data){ ob_start(); var_dump($ajax_data); $data = ob_get_clean(); return PheryResponse::factory('#result') ->html($data) ->jquery('body') ->css(array('backgroundColor' => 'red')) ->alert('This is an alert') ->script('window.setTimeout(function(){ $.callRemote("alias-for-function", {"new":"data","on":["the","block"]]}); }, 1500);') ->call('javascript_function', 'arg1', 'arg2', 3, array(1,2,3)) ->this() ->height(100) ->width(100) ->getJSON('http://jsonurl', PheryFunction::factory(array( 'function(data){', 'console.log(data);', '}' ))); } )) ->process();
Я автор KSS-RPC , полная переработка старого проекта KSS .
Резюме:
KSS (Kinetic Style Sheets) – это структура, которая позволяет создавать Ajax без написания JavaScript. Он использует таблицы стилей с синтаксисом, совместимым с CSS, для объявления поведения в клиенте и набора четко определенных DOM-подобных команд, которые отправляются обратно с сервера, чтобы манипулировать HTML-страницей.
Особенности:
Библиотека Xajax была раздвоена. Библиотека Jaxon предоставляет те же функции, что и Xajax, и многие другие, такие как экспорт каталогов, поддержка пространства имен и автозагрузка.