【发布时间】:2013-10-05 14:06:11
【问题描述】:
你好,我有这样的代码:
file1.php:
session_start();
$object1 = new object1($_SESSION['variable']);
switch($_GET['variableGet']){
case 'a': $object2 = new object2(); break;
case 'b': $object2 = new object2(); break;
}
/*
etc etc
*/
file2.php:
require_once('file1.php');
sleep(5);
$object2->doSomethingForFile2();
echo 'file2 is done!';
file3.php:
require_once('file1.php');
sleep(7);
$object2->doSomethingForFile3();
echo 'file 3 is done!';
使用 AJAX 我正在调用 file2.php 和 file3.php。
我想做的事:
我希望 file2 和 file3 同时启动。
问题:
file3 正在等待 file2 -> 当 file2 完成时(5 秒后),然后 file3 启动脚本并且整个 ajax 在 12 秒内加载(睡眠(5)+睡眠(7)),而不是 7 秒。
自己的观察:
这个问题依赖于*require_once(file1.php)*,在file2和file3中使用。如果我会运行这样的代码:
file2.php:
sleep(5);
echo 'file2 is done!';
file3.php:
sleep(7);
echo 'file 3 is done!';
整个数据在 7 秒内加载(5 秒后 file2.php,然后 2 秒后 file3.php)
【问题讨论】:
-
我的猜测是,file1.php 中有一些锁定。我无法重现此行为。能否提供更多关于 file1.php 的信息?
-
你是在 file1.php 中使用会话吗?
-
我已经更新了我的问题
标签: php ajax require file-locking