2017-08-03 51 views
0

我正在制作一个网站,其中包含Steam API
我正在通过获取签名人的朋友列表来试用它。当.load请求未决时无法刷新页面

但您拥有的朋友越多,加载页面所需的时间就越长。
所以我在网页加载完成后立即开始加载好友。

如果我尝试刷新页面或在页面请求朋友列表时退出,它会一直加载,直到获取好友列表,然后才刷新页面或退出。

我该如何修复,这样我就可以刷新页面而无需等待请求被完成。

这里是jQuery的我用在PHP文件加载:

$(function() { 
    $('#friends').load("friendstest.php"); 
}); 

请告诉我,如果你需要更多的信息。

website is here

回答

0

这可能是由于sessión写入锁定。

如果发出请求并且需要很长时间,用户会话文件将被锁定以进行写入操作,所以在上一个请求释放文件之前,另一个请求无法将其打开以供写入,并且在最后完成的PHP脚本。

如果你的PHP脚本是不会在会话中写入任何数据,你可以调用session_write_close()函数来释放锁(http://php.net/manual/en/function.session-write-close.php),所以你让其他请求打开会话文件。

因此,在您的friendstest.php的开始和session_start之后,您可以调用session_write_close()。

+0

我添加到我的代码,我现在可以刷新页面没有任何问题谢谢男人感谢它:D –

+0

好!接受答案;) –

0

而是在一个单一的通话装载整个好友列表中,你可以用类似拆分成多个呼叫:

upto = 0; 
function loadMoreFriends() { 
    $('#friends').append("friendstest.php?limit=10&start="+upto); 
    upto += 10; 
} 

在这个例子中,upto记录有多少朋友已经加载。 PHP将只返回10朋友,并从页面的起始位置upto开始。

你可以在页面加载时调用这个函数,然后每当你想加载更多的朋友到页面(滚动到底部或类似)。

+0

我将如何从PHP文件追加。你能告诉我一个例子,我需要在PHP中做一个函数,然后把它追加后? –

+0

我不能告诉你如何改变你的PHP没有看到你的PHP第一 – Milk