Я использую codeigniter 3, и у меня возникает странная проблема с использованием ajax. Я пытаюсь вызвать два ajax одновременно, и я думал, что у меня проблема с моим кодом ajax, и я задал этот вопрос здесь, и со мной ничего не работало.
Я продолжал делать код более простым и сужать его до тех пор, пока не обнаружил, что проблема, похоже, связана с кодеригнером
Вот мой код js:
do_download(); get_operation_status(); function get_operation_status() { //var url_process_info = "http://www.example.com/public/sleep_status.php";// this url works as expected var url_process_info = "<?php echo site_url(); ?>download/sleep_status"; $.ajax({ url: url_process_info, dataType: 'json', async: true, method: "GET", success: function (data) { }, complete: function (){ get_operation_status(); } }); } function do_download(){ //var download_url = "http://www.example.com/public/sleep_download.php"; // this url works as expected var download_url = "<?php echo site_url(); ?>download/sleep_download"; $.ajax({ url: download_url, method: "POST", async: true }); }
Мой php-код внутри контроллера загрузки у меня есть две функции для тестирования:
public function sleep_status () { sleep(1); } public function sleep_download(){ sleep (7); }
Вызов ajax для загрузки контроллера, показывающий проблему, которая удерживает второй вызов в ожидании до тех пор, пока не будет выполнен первый.
Я создал два php-файла и поместил их в /public/sleep_download.php и /public/sleep_status.php
и в двух файлах просто строка спящего кода, и она работает так, как я хочу, в то время как первый вызов выполняется, второй вызов ajax был вычислен несколько раз.
Отредактировано: я мог бы заставить его работать, сделав класс не расширяющимся от CI_Controller, я создал новый класс под названием Action, и я прокомментировал эту часть:
class Action /*extends CI_Controller*/ {
Хотя я мог бы заставить его работать, я все еще удивляюсь, почему это происходит? и есть ли лучшее решение?