2012-03-09 81 views
1

我正在製作一個倉庫管理系統。許多圖像在一個頁面上有些未加載

訂單在上午以CSV格式執行,然後執行我的腳本。

它在每個訂單的頂部放置一個php製作的條形碼。我使用的樣本CSV有大約100個獨特的訂單,因此當我加載頁面時,然後將服務器的訂單打印出100多個請求,並且(即時猜測)某些圖像超時。

當我查看源代碼並打開不工作的鏈接時,它會加載圖像,導致我認爲我需要以某種方式禁用瀏覽器上的timout方法。

我唯一的想法是通過JavaScript加載條碼。

有什麼建議嗎?

+1

因此,您要加載一個腳本來生成所有這些訂單頁面,每個頁面都有自己的條形碼?當圖像開始失敗時,它們是否保持失敗或者是否被擊中並錯過? – enygma 2012-03-09 13:37:28

+0

什麼是php.ini中的max_execution_time? – Milap 2012-03-09 13:39:26

+0

如何在瀏覽器中首先預加載圖像,而不是顯示帶有圖像的頁面?谷歌圖像預加載器的JavaScript。 – epascarello 2012-03-09 13:39:30

回答

0

我認爲enygma可能會得到的是php腳本有限的處理時間。有時他們會在30秒後被切斷。一次生成所有這些圖像可能會結束,導致您的腳本在服務器上被終止並停止發送數據。只要你一次只做幾個或串行操作,你的想法就是用javascript加載它們可能是你最好的選擇。

0

如果您在php中啓動會話,會話將被鎖定,並且無法通過其他php腳本訪問,直到發佈。

基於你使用php生成圖像 - 這很可能是你看到的原因。

other questions它進一步詳細介紹瞭如何PHP和會議的工作;但最有可能的原因是你的某些圖像沒有被接收到 - 這些請求是在一個單一的串行隊列中輪流處理的,因爲每個腳本都會讀取會話,直到完成後纔會釋放它。隊列末尾的請求會以某種方式觸發時間限制,並且不會返回任何內容。

因此,請確保您撥打:只要你能

session_write_close(); 

在需要的會話訪問,以防止他們阻止其他PHP請求所有腳本,或者更好的是不使用會話(例如,如果您使用會話進行授權,只需在網址中包含散列值並與圖像請求的散列值進行比較)。