2016-03-26 31 views
0

私はcodeigniterを使用しています。コントローラにはいくつかのcURLスクリプトがあります。これは大きなjsonデータを取得し、読み込むには約15-20秒かかります。ロードアプリケーションの後にカールデータをロードすることを使用する

私のビューは、カール時間(15-20秒)のように長い時間読み込んでいます。

私のビューにいくつかの「読み込みアイコン」が表示され、スクリプトの後にすべてのjsonデータが読み込まれ、「読み込み中のアイコン」が私のデータに置き換えられます。

マイコード:

ビュー

 <?php foreach ($items as $item): ?> 
      <div class="item-slot"> 
       <img src="http://cdn.steamcommunity.com/economy/image/<?= $item['icon_url'] ?>"> 
       <p><?= $item['name'] ?></p> 
      </div> 
     <?php endforeach; ?> 

コントローラ(open_inventory機能)

public function open_inventory($steam_id, $appid = 730, $contextid = 2) 
{ 
    $data = array("steamid" => $steam_id, "appid" => $appid);                  
    $data_string = json_encode($data);                     

    $ch = curl_init('http://localhost:3000/inventory');                  
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");                  
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);                 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);                  
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(                   
     'Content-Type: application/json', 
     'Content-Length: ' . strlen($data_string)) 
    ); 
    $json = json_decode(curl_exec($ch),true); 

    if($json['data']) 
    { 
     return $json['data']; 
    } 
    return false; 
} 

$itemsビューでは、コントローラから$json['data']です。

よろしくお願いいたします。

+1

あなたは非同期データを取得するために、アプリケーションの 'ajax'呼び出しを使用を検討する必要があるがサーバーから。 – Yani

+0

@ Yaniこれを行うために私がAjax関数を検索する必要があることについて教えてください。よろしく。 – mateuszji

+0

どうすればいいですかhttp://api.jquery.com/jquery.ajax/ – Yani

答えて

0

jQueryのは、あなたがこのように使用することができます機能ajaxStartとajaxStopあります

$(document).ajaxStart(function() { 
    $("#loading-image").show(); 
}).ajaxStop(function() { 
    $("#loading-image").hide(); 
}); 

詳細herehere

+0

あなたはPHPでcurl jsonデータを読み込んでこれを行う方法をもっと教えてくれますか? – mateuszji

+0

私も大好きですが、あなたの質問を更新し、あなたが今何をしているのかを示す必要があります。必須のコードのみを表示してください! – Vickel

+0

質問を編集しました。 – mateuszji

関連する問題