Кеширование node_load

Главные вкладки

Аватар пользователя biperch biperch 25 мая 2013 в 6:39

Доброго времени суток.

По аяксу отправляю на сервер запрос с данными изменения ноды, загружаю ноду через node_load($nid), редактирую результат, после чего сохраняю изменения через node_save($node)
После сохранения ноды, вызывается функция которая получает nid ноды делает кое какие свои манипуляции и загружает ноду снова через node_load(). Но как я вижу нода загружается в виде не измененной и по аяксу возвращаются данные как будто ничего не менялось, а вот если второй раз отправить аякс то возвращаются данные которые были введены в предидущий раз. node_load($nid, NULL, TRUE) дает такой же результат. Объясните в чем проблема я что то не понимаю..

Комментарии

Аватар пользователя biperch biperch 25 мая 2013 в 15:26

так вот в том то и фокус что при всех этих сбросах кеша, при лоаде все равно старая версия ноды получается. какая то магия

Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 25 мая 2013 в 15:44

"biperch" wrote:
так вот в том то и фокус что при всех этих сбросах кеша, при лоаде все равно старая версия ноды получается. какая то магия

Фокуса нет, static-кеширование не сбрасывается cache_clear_all(), нужно указывать параметр $reset в node_load().
Так же, непонятно зачем делать node_load(), если после node_save() доступен новый объект ноды

Аватар пользователя biperch biperch 26 мая 2013 в 17:38

"RxB" wrote:
нужно указывать параметр $reset в node_load().

тоже не проходил такой номер, хотя должен был 100% сбросится статик

"RxB" wrote:
Так же, непонятно зачем делать node_load(), если после node_save() доступен новый объект ноды

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