阿贾克斯。是否有可能在新文件中不再使用mysql_query?

时间:2010-01-09 15:06:55

标签: php jquery ajax

当我使用ajax时,我必须再次使用mysql_query来获取该文件中用于ajax的信息。我可以在没有mysql_query的情况下执行操作,例如include();? 问你是否理解,因为我猜我的问题不是很正确。

已编辑:当我尝试访问ajax文件时,在该文件中我必须再次检索成员信息。所以,我的问题是,是否有可能避免这种情况?

3 个答案:

答案 0 :(得分:2)

使用内容协商和缓存的组合,例如

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)

Ignacio explained类似,每个对服务器的请求都是隔离的。 PHP有一个无共享架构,所以你唯一可以阻止查询再次运行的就是缓存它。内容协商只是帮助使用相同的查询并在依赖请求上下文中返回它,因此您没有Ajax的Controller Action和常规调用的一个。

答案 1 :(得分:0)

每次访问服务器上的PHP页面都是一个独立的操作。除非明确缓存,否则结果不会在访问之间缓存,例如,在会议中。

答案 2 :(得分:0)

您可以实现一个缓存层,即memcacheAPC,这将允许您按键存储数据库结果,这将允许您在后续调用中跳过数据库访问。