2011-03-23 75 views
0

我網站上的某些頁面通過大量的ajax調用進行填充,通常是20+個異步運行的ajax調用。我遇到的問題是每次調用都會創建一個新的mysql_connection,導致我收到'max_user_connections'錯誤,而我被告知20錯誤。我嘗試關閉異步,但是作爲JQuery文檔狀態,這將經常凍結頁面。我已經考慮將其轉換爲1 ajax調用,並讓PHP執行循環,但想法是顯示每個元素,因爲它變得可用(某些數據從外部來源收集,因此時間可能會有所不同)max_user_connections和ajax

這可以用mysql_pconnect修復嗎?

+0

PHP是否在服務器上作爲CGI運行?如果確實如此,則無法共享多個請求之間的連接。 – 2011-03-23 06:01:16

+0

服務器API值是Apache 2.0處理程序。 – 2011-03-23 07:05:47

回答

0

即使沒有MySQL問題,也有20多個Ajax調用。 8.當你 - 因爲它帽最大HTTP連接(以單一網域內),以2,4或8

我將結合這些要求和帶來的Ajax調用數下降到6瀏覽器不會同時讓這些20個電話上面提到的其餘的調用從外部來源獲取數據。這些電話是否也與MySQL交談?
另外,這些東西可能會有所幫助:

  1. 可以緩存某些HTTP會話中的事物(如 用戶名,用戶全名)
  2. 可以緩存一些數據出來的MySQL的到的memcached甚至檔案?當數據可用時,可以更新緩存。
+0

每個ajax調用會話到mysql,這是造成這個問題。然而,這僅僅發生在一個頁面的第一個訪問,並永遠不會再作爲外部數據被保存在數據庫中。 – 2011-03-23 16:16:18

1

這是可以用mysql_pconnect修復的東西嗎?

不 - 你需要:

1)增加連接MySQL將處理的(數量不推薦 -

2沒有複製的可擴展解決方案))提高了AJAX的速度呼叫處理器(例如查詢優化,數據庫/操作碼/ HTTP級高速緩存)

3)降低AJAX調用的頻率 - 例如如果最後一次發生在500毫秒內,則通過滑動呼叫

+0

我認爲#3可能是唯一的方法去我的情況。 – 2011-03-23 16:15:04

相關問題