Archive for category AJAX
Коректна робота з кирилицею в AJAX
Мабуть, найпоширеніше питання на форумах про Аякс в Рунеті та Уанеті. Попри всі переваги Юнікоду, багато програмістів все ще використовують в своїх проектах інші кодування, наприклад cp1251. Коли справа доходить до застосування AJAX, з’являються проблеми…
Щоб дані на кирилиці, які ПОВЕРТАЮТЬСЯ скриптом відображались коректно потрібні дві умови:
а) Робота самої БД з кирилицею ведеться коректно
б) В php-файлі, який ПЕРЕДАЄ дані вставити наступні рядки:
header(’Content-Type: text/html; charset=windows-1251′);
Щоб дані на кирилиці, які ПЕРЕДАЮТЬСЯ скриптом передавались коректно(наприклад, при пошуку на сайті введене слово передається через GET) потрібно:
а) В JavaScript використовувати кодування в Юнікод:
encodeURIComponent($string)
б) А в РНР скрипті використовувати обернене кодування – з Юнікоду в 1251ср:
$_GET['SearchText']=iconv(’UTF-8′, ‘windows-1251′, $_GET['SearchText']);
Боротьба з кешем в AJAX
Щоб вимкнути кеш при аякс-запитах в php-файлі, який ПЕРЕДАЄ дані вставити наступні рядки:
header( 'Expires: Mon, 26 Jul 1970 05:00:00 GMT' ); header( 'Last-Modified: ' . gmdate( 'D, d M Y H:i:s' ) . ' GMT' ); header( 'Cache-Control: no-store, no-cache, must-revalidate' ); header( 'Cache-Control: post-check=0, pre-check=0', false ); header( 'Pragma: no-cache' );
Якщо ж побороти кеш не вдається жодними засобами, то може допомогти наступний примітивний трюк
$no_cache=time()+rand();
Після цього змінна $no_cache додається в якості параметру до рhр-файлу, що викликається