【问题标题】:PHP to js-PHP solution in order to avoid pageloadsPHP to js-PHP 解决方案以避免页面加载
【发布时间】:2011-04-22 21:15:08
【问题描述】:

为了减少页面加载,我想更改我当前的解决方案。下面是我用来为用户提供 isbn 书名的部分代码。该脚本获取 isbn,从表单发布并检查其 isbn 有效性,然后使用开放 api 解决方案,其中 http 请求是 mde 与 isbn,标题作为 json 返回,然后显示给用户。

用户通常检查三本书,并且在当前的解决方案中,必须为每本书发布表单才能获得结果。没有页面加载的最佳方法是什么?

if(isset($_POST['isbn']) && strip_tags($_POST['isbn'])!=''){

        $currISBN = new ISBNtest;
        $currISBN->set_isbn(strip_tags($_POST['isbn']));

        if ($currISBN->valid_isbn13() === TRUE) {

            //Hämta info
            $url = "http://apisite.com/search?query=isbn:".$currISBN->get_isbn13()."&format=json";
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($ch, CURLOPT_REFERER, "http://www.site.com");
            $json_body = curl_exec($ch);
            curl_close($ch);
            $json = json_decode($json_body,true);
            $this_title=$json["xsearch"]["list"][0]["title"];

【问题讨论】:

    标签: php javascript httprequest


    【解决方案1】:

    听起来像是 jQuery.ajax() 的工作!
    http://api.jquery.com/jQuery.ajax/

    如果您有一点编程经验,应该不会花费太长时间来弄清楚如何实现它。

    【讨论】:

    • 你应该提到 jQuery 是一个相当“大”的 javascript 库,并且不仅仅是 .ajax() - 仅将它用于异步请求可能有点矫枉过正。跨度>
    • 我已经有了其他功能的库,所以我很高兴听到我也可以在这里使用它。我的知识仅限于 jquery 选择和显示/隐藏功能,尽管我想这将是一个挑战! :)
    • @caimz 可能是这样,但为什么要为 AJAX 包装器重新发明轮子呢? jQuery 可能是当今网络上最好的包装器。
    • 它可能是最好的(在同类产品中),我个人更喜欢 Prototype,但它们不能很好地结合在一起。无论哪种方式,他已经在使用 jquery,所以它是一个 nobrainer。使用 jquery 的函数,它应该是直截了当的。
    【解决方案2】:

    这看起来像是在后台使用 XMLHTTPRequest 的主要示例 - 以及一些在页面上放置一些数据的 javascript。您根本不需要页面加载。

    【讨论】:

    • 我查过了,谢谢。与其他提到的 jquery async 有什么区别?
    • XMLHTTPRequest 是 jquery 在帮助代码 (ajax) 中包装的核心。包装器代码将使您能够关心更高级别的代码,而不必担心浏览器差异(大部分) - 以及其他方便的功能,可以少写,多做。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-04
    • 2017-10-21
    • 1970-01-01
    相关资源
    最近更新 更多