Ajax. Можно ли снова не использовать mysql_query в новом файле? - PullRequest
0 голосов
/ 09 января 2010

Когда я использую ajax, я должен снова использовать mysql_query для получения информации в этом файле, который предназначен для ajax. Могу ли я выполнить действие без mysql_query, как с include () ;? Спросите, не понимаете ли вы, потому что, наверное, я не очень правильно спросил.

отредактировано: Когда я пытаюсь получить доступ к файлу ajax, в этом файле мне снова нужно получить информацию об участнике. Итак, мой вопрос: можно ли этого избежать?

Ответы [ 3 ]

2 голосов
/ 09 января 2010

Используйте сочетание согласования содержимого и кэширования, например,

Controller
    Action
        // check if query is cached
        if(!Cache->hasSaved(Query))
            Result = Query->run
            Cache->save(Result)
        else
            Result = Cache->getSaved(Query)

        // check if Request was done via Ajax
        if(Request->isAjax)
            View->disableLayout
            View->set(JSON->encode(Result))
        else
            View->set(Result)

Как и Игнасио объяснил , каждый запрос к серверу изолирован. PHP имеет архитектуру без общего доступа , поэтому единственное, что вы можете сделать, чтобы предотвратить повторный запуск запроса, - это кэшировать его. Согласование содержимого просто помогает использовать один и тот же запрос и возвращать его в зависимости от контекста запроса, поэтому у вас нет действия контроллера для Ajax и действия для обычных вызовов.

0 голосов
/ 09 января 2010

Вы можете реализовать слой кэширования, например memcache или APC , который позволит вам сохранять результаты базы данных по ключу, что позволит вам пропускать доступ к базе данных при последующих вызовах.

0 голосов
/ 09 января 2010

Каждый доступ к странице PHP на сервере является изолированным действием.Результаты не кэшируются между доступами, если они явно не кэшированы, например, в сеансе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...