【问题标题】:Loading remote items together or separately?一起或单独加载远程项目?
【发布时间】:2012-05-03 10:04:50
【问题描述】:

我希望优化我的应用程序。它使用 Twitter 和 Facebook API 并加载要在用户屏幕上显示的大文件。现在,我正在线性运行脚本,使用 AJAX 调用一个包含两个 API 调用的文件,并将所有信息加载到屏幕上。将两个 API 调用分成两个不同的文件,然后使用 AJAX 分别加载每个文件会更快吗?这样,如果一个响应的时间比另一个响应的时间长,那么仍然会显示更快的响应。

谢谢。

如果重要的话,我会使用 PHP 和 CURL 进行 API 调用。

【问题讨论】:

    标签: php ajax api optimization call


    【解决方案1】:

    当然,如果 AJAX 调用不相互依赖会更好。您也可以在 PHP 端使用curl_multi_init 执行此操作,该curl_multi_init 以并行方式执行 HTTP 调用。

    PHP 手册示例:

    <?php
    // create both cURL resources
    $ch1 = curl_init();
    $ch2 = curl_init();
    
    // set URL and other appropriate options
    curl_setopt($ch1, CURLOPT_URL, "http://lxr.php.net/");
    curl_setopt($ch1, CURLOPT_HEADER, 0);
    curl_setopt($ch2, CURLOPT_URL, "http://www.php.net/");
    curl_setopt($ch2, CURLOPT_HEADER, 0);
    
    //create the multiple cURL handle
    $mh = curl_multi_init();
    
    //add the two handles
    curl_multi_add_handle($mh,$ch1);
    curl_multi_add_handle($mh,$ch2);
    
    $active = null;
    //execute the handles
    do {
         $mrc = curl_multi_exec($mh, $active);
    } while ($mrc == CURLM_CALL_MULTI_PERFORM);
    
    while ($active && $mrc == CURLM_OK) {
        if (curl_multi_select($mh) != -1) {
            do {
                $mrc = curl_multi_exec($mh, $active);
            } while ($mrc == CURLM_CALL_MULTI_PERFORM);
        }
    }
    
    //close the handles
    curl_multi_remove_handle($mh, $ch1);
    curl_multi_remove_handle($mh, $ch2);
    curl_multi_close($mh);
    
    ?>
    

    【讨论】:

    • 那里的curl_multi_select 让我有点困扰。无限循环?
    猜你喜欢
    • 2013-07-07
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 2014-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多