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р-файлу, що викликається

Коментарів немає