Кэширование PHP PDO

при использовании jQuery, Вы имели бы:

$('#elementId').change(function() { alert('Do Stuff'); });

или Ajax MS:

$addHandler($get('elementId'), 'change', function(){ alert('Do Stuff'); });

Или в необработанном HTML элемента:

<input type="text" onchange="alert('Do Stuff');" id="myElement" />

После перечитывания вопроса я думаю я считанный мисс, что должно было быть сделано. Я никогда не находил способ обновить элемент DOM способом, который будет форсировать событие изменения, что Вы лучше всего делаете, имеет отдельный метод обработчика событий, как это:

$addHandler($get('elementId'), 'change', elementChanged);
function elementChanged(){
  alert('Do Stuff!');
}
function editElement(){
  var el = $get('elementId');
  el.value = 'something new';
  elementChanged();
}

, Так как Вы уже пишете метод JavaScript, который сделает изменение, которое это - только 1 дополнительная строка для вызова.

Или, если Вы использование платформы Microsoft AJAX, можно получить доступ ко всем обработчикам событий через:

$get('elementId')._events

Это позволило бы Вам делать некоторые работы отражательного стиля, чтобы найти, что правильный обработчик (обработчики) событий стреляет.

5
задан El Yobo 10 December 2009 в 22:37
поделиться

3 ответа

Имеется кеш запросов MySQL . Но в целом вам обязательно нужно сохранить идентификатор для подготовленного оператора и использовать его повторно.

Кеш запросов отсутствует в MySQL версии 8.0, см.

https://dba.stackexchange.com/questions/217577/ почему-mysql-remove-query-cache-in-8-0-version

https://mysqlserverteam.com/mysql-8-0-retiring-support-for-the-query-cache/

4
ответ дан 14 December 2019 в 01:09
поделиться

Два последующих вызова PDO :: prepare () (даже с одним и тем же запросом SQL) должны возвращать два разных PDOStatement (или дескрипторы) для избегайте коллизий, особенно между предыдущими и текущими привязками, которые вы можете применить к нему. Стоимость создания PDOStatement с помощью prepare () в любом случае невысока. Вы можете захотеть кэшировать результаты, возвращаемые одним и тем же SQL-запросом, необработанным или созданным с помощью prepare (), и это особенность вашей СУБД (например, MySQL), а не PHP.

4
ответ дан 14 December 2019 в 01:09
поделиться

Это зависит от вашего драйвера базы данных. В MySQL PDO по умолчанию создает собственный подготовленный оператор. Вы можете отключить его, если хотите использовать реальный кеш запросов.

Если вам абсолютно необходимо выполнять один и тот же запрос несколько раз, тогда да, вы захотите оставить этот дескриптор. Если вы используете эмулированные подготовленные операторы, это не имеет никакого значения.

1
ответ дан 14 December 2019 в 01:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: