我在使用PHP和JS编写的localhost上开发了一个Web应用程序,偶尔会遇到加载问题。 卡住加载我的意思是你仍然没有在页面上看到任何东西。 一旦它被卡住,即使我在另一个标签中打开它,它仍然卡住了。只有当我关闭窗口并重新打开它才能再次工作。
由此,我怀疑它与会话有关,但我不知道会话如何影响这一点。它是PHP会话处理代码还是浏览器?
我主要使用Chrome(现在版本54)。服务器是在Windows 10上运行的XAMPP 5.6.3版本。该应用程序与SQL Server 2012建立了连接,但在这种情况下我并不相信这是相关的。
其他信息:
如果我等待足够长的时间,最终脚本会超时并显示:
Fatal error: Maximum execution time of 90 seconds exceeded in project_functions.php on line 22
function startSession(){
if (session_status() == PHP_SESSION_NONE) {
session_start();
} // this is line 22
}
一个侧面问题:为什么它会停留在第22行,这只是一个结束支撑?
答案 0 :(得分:3)
Map<String, Object> map = mapper.readValue(text, new TypeReference<Map<String, Object>>() {
});
Map<String, Object> mainMap = (Map<String, Object>) map.get("main");
System.out.println(mainMap.get("temp"));
的默认实现将锁定会话以防止竞争条件。这意味着如果您在长时间运行的脚本中打开会话并且不用session_start
关闭它,则尝试打开该会话的下一个请求将等到锁定被释放。
简单的解决方案:通过调用session_write_close