【问题标题】:Send response immediately PHP Jquery AJAX立即发送响应 PHP Jquery AJAX
【发布时间】:2017-04-23 21:30:52
【问题描述】:

我对如何执行 AJAX 请求有一个基本的想法,但我真正想要的是在获取数据后立即发送响应,而不是等待所有 mysql 查询结果完成。有没有办法做到这一点?能给个思路吗?

我真正想象的例如:

当文档准备好后,客户端将发送数据库中所有列表的请求。 当服务器端的 PHP 正在获取数据时,它会将行作为 json 发送,然后客户端继续解析这些响应,直到服务器端无法再获取行。

有可能吗?如果有,你有什么想法吗?

【问题讨论】:

  • 你是在说某种流吗?
  • 你的意思是说你想在第一个 ajax 调用响应时立即进行另一个 ajax 调用?
  • @FirstOne 是的 :)
  • @GhanshyamBhava 是的,当 mysql 正在获取行时,这些行会立即发送
  • @ShiraNai7 不,甚至没有关闭

标签: php jquery mysql ajax xmlhttprequest


【解决方案1】:

我有一小段代码。也许你会接受!

JQuery:

<script>

    $(document).ready(function() {
        view();
    });

    function register()
    {
        var f = $('#fname').val();
        var l = $('#lname').val();

        $.ajax({
            url:'index.php/control/insert',
            data :{fname : f, lname : l},
            type:'post',
            success:function(msg){
                return view();
            }
        });
    }

  function view()
  {
        $.ajax({
            url:'index.php/control/show',
            data :{},
            type:'post',
            success:function(msg){
                $('#table').html(msg);
            }
        });
    }
</script>

HTML 表单:

<form action="" method="post">
    <table align="center" border="11">
        <tr>
            <td>First name</td>
            <td><input type="text" name="fname" id="fname" /></td>
        </tr>
        <tr>
            <td>Last Name</td>
            <td><input type="text" name="lname" id="lname" /></td>
        </tr>
        <tr>
            <td colspan="2"><input type="button" id="submit" name="submit" onclick="register()" value="Register"></td>
        </tr>
    </table>
</form>

Mysql 功能控制器:

public function insert()
{
    $sql = "INSERT INTO MyGuests (firstname, lastname) VALUES ('".$_REQUEST['fname']."', '".$_REQUEST['lname']."')";

    if ($conn->query($sql) === TRUE) {
        echo "New record created successfully";
    }
}
public function show()
{
    $sql = "SELECT * FROM MyGuests";

    if ($data = $conn->query($sql) === TRUE) {
        echo "New record created successfully";
    }

    echo "<br><table border='1' align='center'>
            <tr>
                <th>Firstname</th>
               <th>Lastname</th>
            </tr>";
            foreach($data as $s)
            {
               echo "<tr><td>".$s->fname."</td>";
                echo "<td>".$s->lname."</td></tr>";
            }
    echo "</table>" ;
}

确保代码未经测试这是您要求的示例,旨在了解调用立即函数。在这里,我在将数据插入数据库后调用了 view() 函数。

【讨论】:

    猜你喜欢
    • 2020-07-25
    • 2012-04-24
    • 1970-01-01
    • 1970-01-01
    • 2021-03-20
    • 2017-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多