我有两个单独的文件。
iframe在父窗口中执行changePercent命令,但它不会立即更改数字,只会在循环结束后更改。有没有什么办法解决这一问题?需要这个以获得进度条。
提前致谢!
这是我在浏览器中打开的文件
<span id="test">1</span><br />
<iframe src="script.php?league=Nemesis"></iframe>
<script type="text/javascript">
function changePercent(val) {
document.getElementById("test").innerHTML=val;
}
</script>
这是嵌入式iframe
<?php set_time_limit(0);
include('../assets/includes/functions.inc.php'); ?>
<?php
$i = 0;
$step = 200;
$end = 15000 - $step;
$league = $_GET['league'];
$found = false;
$status = false;
while ($found == false && $i < $end) {
if($i < $end) { $i = $i + $step; }
$ladder = file_get_contents("http://api.pathofexile.com/ladders/".$league."?limit=".$step."&offset=".$i);
$ladder = str_replace('"online":false', '"online":"no"', $ladder);
$ladder = str_replace('"online":true', '"online":"yes"', $ladder);
$json = json_decode($ladder, true);
foreach ($json['entries'] as $address) {
if($address['online'] = "yes") {
$status = true;
// do something
}
}
?>
<script type="text/javascript">
parent.changePercent('<?php echo $i ?>');
</script>
<?php
}
?>
答案 0 :(得分:2)
php
是服务器端语言。当php运行while循环时,这意味着浏览器仍在等待页面数据,只有在php
完成时才会将其发送到浏览器。
在你的changePercent
中,你有一个位于while循环之后的php代码,所以它会运行while循环,然后才能评估changePercent
所以没有“修复”,你应该学习网络编程的基础知识
答案 1 :(得分:0)
您在使用时退出PHP循环?&gt;尝试以下代码段。
echo '<script type="text/javascript"> parent.changePercent(' . $i .'); </script>';
这将告诉PHP在每次循环执行时打印出该行。