Ajax загружает данные с контроллера с сообщением «загрузка»

Теперь я загружаю данные из cURL в свой контроллер и показываю его в своем файле просмотра, но загрузка из cURL занимает много времени, поэтому мой webiste также загружается очень долго.

Я хочу создать эффект загрузки, просто загрузите всю мою страницу с помощью «Загрузка, пожалуйста, подождите». до тех пор, пока данные cURL не будут доступны, и после того, как они скрывают сообщение загрузки и показывают мои данные.

Как мне это сделать?

Мой код:

контроллер:

public function open_inventory($steam_id, $appid = 730, $contextid = 2) { $data = array("steamid" => $steam_id, "appid" => $appid); $cache_file = $this->config->item('inv_dir')."/".$data['steamid']."_".$data['appid'].".json"; if (file_exists($cache_file) && (filemtime($cache_file) > (time() - 60 * 60 ))) // 1 hour cache { $output = file_get_contents($cache_file); } else { // out-of-date $data_string = json_encode($data); $ch = curl_init('http://localhost:3000'); 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)) ); $output = curl_exec($ch); file_put_contents($cache_file, $output, LOCK_EX); } $json = json_decode($output,true); if($json['data']) { return $json; } return false; } 

$items в представлении $json['data'] в контроллере.

Посмотреть:

 <?php foreach ($items as $item): ?> <div class="item-slot animated zoomIn" data-id="<?= $item['id'] ?> <p><?= $item['name'] ?></p> </div> <?php endforeach; ?> 

С уважением.