週三AJAXy CRM系統我保持打破了很多用戶,因爲火狐開始報告「XMLHttpRequest的超時屬性的使用在窗口背景下的同步模式,不支持」。其他主流瀏覽器仍然正常工作,因此我建議人們不要使用Firefox。如何看待不同的瀏覽器處理暫停時以同步XHR
從我的理解同步請求是壞事,所以我只能假設最近的一些更新到Firefox已經從容納糟糕事情停止它。以前的所有討論(在這裏和網絡上)暗示了在同步的時候使用timeout屬性XMLHttpRequest對象根本不應該工作,這導致我想知道爲什麼它顯然會這樣做(除了截至週三的Firefox)。
是其他瀏覽器/ Firefox的老實際執行超時行爲,他們「不應該」,還是僅僅忽略異常並繼續執行(而不是像新的Firefox想逃出來)?
編輯:我不能去的代碼,但現在它是沿着線: if (c.somekindoftimeouthandler !== "unassigned" && this.timeout) {
哪裏「這個」又是從何而來的XMLHTTPRequest和「C」想必繼承了複雜的是特定對象指特定的AJAX請求或其他。我會乾淨的,我對JavaScript和這個特定的基於Sugar的CRM都知之甚少,但代碼的本質很簡單。這是一種通用的面向對象的方式來提出請求,並且當請求超時時,這個特定的4行或多行將被處理。我覺得這是一個抽象的基礎,特定的請求(或請求實體)應該專注於這個抽象基礎。 Firefox的Javascript引擎窒息在
c.timeout = this.timeout
//more stuff about the handler etc...
}this.timeout
。
我相信我的質詢主要是更普遍的,雖然 - 定的使用超時同步XHR的「不良」,怎麼辦各種瀏覽器處理呢?
請顯示失敗的代碼。如果沒有,黑暗中會有很多鏡頭。 – JotaBe