Ajax请求工作30秒
我有一个程序,它有一些使用ajax的函数。有一段时间我注意到,在页面处于非活动状态的30秒内,所有ajax都只起作用。这很奇怪。当这个时间到期时,ajax停止工作,使用这个请求的每个组件都不再工作 例如: 我有一个DataTable,它有一个打开对话框的按钮。默认情况下,primefaces ajax组件处于活动状态,当我单击按钮时会打开一个对话框。只有当页面空闲30秒时才会发生这种情况。 配置的会话超时已结束,但仍然不知道问题出在哪里 注意:这在整个项目中都会发生,而不仅仅是几页。Ajax请求工作30秒,ajax,jsf,primefaces,Ajax,Jsf,Primefaces,我有一个程序,它有一些使用ajax的函数。有一段时间我注意到,在页面处于非活动状态的30秒内,所有ajax都只起作用。这很奇怪。当这个时间到期时,ajax停止工作,使用这个请求的每个组件都不再工作 例如: 我有一个DataTable,它有一个打开对话框的按钮。默认情况下,primefaces ajax组件处于活动状态,当我单击按钮时会打开一个对话框。只有当页面空闲30秒时才会发生这种情况。 配置的会话超时已结束,但仍然不知道问题出在哪里 注意:这在整个项目中都会发生,而不仅仅是几页。 谢谢。这个
谢谢。这个问题可能很久以前就被问过了。但我也遇到了类似的问题,多年来一直试图在代码中找到bug。原来真正的bug来自我的php.ini文件。PHP将最大执行时间设置为30秒默认情况下,您可以调整PHP.ini文件以允许更长的时间,或者只需将以下代码添加到PHP脚本的开头:
ini_set('max_execution_time',0);
默认情况下,PHP将max_execution_time设置为30秒,将该值设置为0将删除时间限制,并允许ajax脚本在浏览器窗口保持活动状态的情况下继续运行。控制台中有JS错误吗?在Chrome/Firefox>=23/IE>=9中按F12键查看它。也许您在某个地方有一个
setTimeout()
或setInterval()
执行了一个函数,该函数又包含一个JS语法错误,这反过来又导致整个JS上下文失败?此错误:未捕获类型错误:无法读取null primefaces.JS.xhtml?ln=primefaces:1Okay的属性“documentElement”,原因是:)现在还没有理解和修复它。您是否手动包含JS文件?如果有,哪些?jQuery也在其中吗?如果是的话,为什么呢?我知道JS是原因,但不要直接使用JS。只使用primefaces,这反过来似乎在JS中工作。请回答我之前评论中的问题。您是否手动包含JS文件?是还是不是?换句话说,您的页面中是否有
或
等内容?如果是,具体是哪些文件?这个问题是关于ajax、jsf和Primefaces的,而不是关于php的