2012-10-09 25 views
0

我正在使用提供圖像的servlet。但是,這需要大約30秒。完成後,它將顯示在OpenLayers交互式地圖上。通過JavaScript確定是否存在另一個URL

我想找出一個方法,用戶在www.test.com得到確認圖像正在處理或完成,它位於www.test2.com。如果我打開test2.com,我可以看到該頁面正在嘗試加載。完成後,圖像也出現在test.com上的我的地圖上。

但是,我無法弄清楚如何測試這個圖像是否存在。我在尋找的東西可能喜歡

if(image exists at http://test2.com) {alert("request is done"); 

或可能

if(http://test2.com is loading) {doing something); 

我只是不想讓用戶坐在如果請求失敗。如果失敗,網址將完成其加載 - 但是,不會出現圖像。任何指導將非常感激!謝謝!

凱爾

+0

如果頁面塊,而圖像正在加載,你可以添加一個'img'元素,然後檢查它是什麼時候觸發它的'load'事件。 –

回答

3

如果它是一個不同的服務器,JavaScript就無法進行任何類型的Ajax請求到該服務器,看它是否存在。您必須在本地域上有代理,才能向第二個域發出頭部請求。

如果您在等待圖像加載後才能使用它,您可以始終使用圖像預加載器,但是這會花費全部時間在onload事件觸發前渲染圖像。

var img = new Image(); 
img.src = theUrl; 
img.onload = function() { 
    nextStep(this); 
}; 
img.onerror = function() { 
    imgLoadingError(this); 
}; 
+0

這不一定是ajax,因此不會受到相同的原產地政策的影響(由圖像目前在某些地圖元素中工作的事實證明)。你可以在任何你想要的地方包含'img's。 –

+0

完美的作品!我至少可以證明這個過程正在與此同時進行。謝謝 – Kyle

0

,如果你有比其他服務器控件,你可以把一個小圖像的服務器上,做這樣的事情:(未經測試的代碼,直接鍵入)

var img = new Image(); 
// Note the order of these two statements 
img.onload = function()("The image loaded! Server must be up"); 
img.src = "http://example2.com/myflag.png"; 
相關問題