РЕДАКТИРОВАТЬ Я только что понял, что у меня, должно быть, был огромный пердеть при написании сокращенного примера кода. Видишь, я пользуюсь умом. Таким образом, я на самом деле уже использую решение Кипса, потому что Smarty отображается после сохранения сеанса
Я работал над реализацией менеджера ресурсов (для сжатия, сжатия и минимизации CSS и JS) для сайта PHP, над которым я работаю, и столкнулся с очень странной проблемой. Поэтому, когда пользователь переходит к index.php, файлы добавляются в объект диспетчера ресурсов, который объединяет их в один файл и включается в страницу с помощью <script src="resource.php?id=123&ext=.js">
или <link href="resource.php?id=123&ext=.css" />
.
То, что в основном сводится к тому, что путь к файлу сохраняется в сеансе на странице, к которой осуществляется доступ, и читается из сеанса на странице ресурса. В FF это работает отлично. В IE и Chrome это не так.
Вот очень сокращенный пример кода:
index.php
<?php
session_start();
//Do a ton of stuff
//Including adding several files to the resource object
//Add the resource links to the head
$smarty->append('headSection','<link href="resource.php?id=<?=$resourceID?>&type=.js" />');
</head>
//Save the resource file which:
// - Outputs the file
// - Saves a reference to it in session
$_SESSION[$resourceID] = $file;
//Let Smarty display
$smarty->display($templateFile);
?>
resource.php
<?php
readfile($_SESSION[$_GET['id']] . $_GET['type']);
?>
Мне кажется, что FF ждет ответа всей страницы, прежде чем делать какие-либо новые запросы к ресурсам, требуемым для страницы, в то время как IE и Chrome работают, начиная новый запрос, как только он встречается. Из-за этого эта ошибка в основном сводится к состоянию гонки.
Кто-нибудь может подтвердить, что это действительно так? И если так - как бы я обойти это?