2017-08-03 30 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