gpt4 book ai didi

php - ajax的刷新问题

转载 作者:行者123 更新时间:2023-12-01 05:05:19 24 4
gpt4 key购买 nike

我在我的 php 页面中无限循环中使用了 flush() 函数,它每秒回显一个文本。当我在浏览器中打开页面时,它可以工作!但是当我通过 jquery ajax 加载它时它没有响应!

php页面

    <?php

if (ob_get_level() == 0) ob_start();

for ($i = 0; true/*$i<10*/; $i++){

echo "<br> Line to show. $i";
echo str_pad('',4096)."\n";

ob_flush();
flush();
sleep(1);

}

ob_end_flush();

?>

jquery 代码

$.ajax({
url: 'res.php',

beforeSend: function( ) {
$('#mydiv').html('loading...');
},
success: function( data ) {

$('#mydiv').html( data );

}
});

最佳答案

HTTP-Streaming 不能简单地使用 $.get 来完成

插入<script> tags如下:http://ajaxpatterns.org/archive/HTTP_Streaming.php .

 <?
while (true) {
?>
<script type="text/javascript">
$('news').innerHTML = '<?= getLatestNews() ?>';
</script>
<?
flush(); // Ensure the Javascript tag is written out immediately
sleep(10);
}
?>

HTTP 流是一个非常复杂的技巧。您应该考虑使用长轮询,它适用于所有浏览器。好像有一些solutions (幻灯片 54)

简单的长轮询示例主题:

How do I implement basic "Long Polling"?

This video shows how to do long-polling: http://www.screenr.com/SNH

P.S:这肯定会杀死你的(性能不佳)服务器。你应该看看http://pusherapp.com对于小型网站来说是免费的。

关于php - ajax的刷新问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6488493/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com