㈠ web前端開發過程中,出現瀏覽器兼容問題,一般從什麼角度考慮解決
1、寫代碼的時候遵循W3C標准,按照最新穩定版本的IE或WebKit內核瀏覽器進行編碼。
2、遇到部分無法全面解決瀏覽器兼容的時候,採取CSS的hack手段進行針對性微調。
3、遇到特別難解決的,可以用JS強制修改。
㈡ 自己編寫的前端頁面,用瀏覽器打開的時候卻變了樣子,多了東西,還有一些代碼被改變,是什麼原因
試一下其他瀏覽器,有些瀏覽器擴展程序會添加某些東西。
㈢ 求助!flash造成FLASH CS4崩潰及瀏覽器輸出卡的問題
看了樓主的文件,這是一個純時間軸的動畫1??文件沒有問題,不會導致CS4死機,如果死了,是軟體有問題,不是這個文件的問題。2??不會造成IE
(N)反應慢,如果反應慢了,請檢查這個FLASH以外的原因。3??分卷壓縮太難下載,其它需要看的朋友可以下載下面這個文件。
㈣ 我用js寫了一段時間代碼,可是在瀏覽器中運行一會就卡死了……怎麼解決啊
把setInterval改為setTimeout
非要用setInterval可以把原來的變為clearInterval(timer);timer=setInterval("show()",1000);作用是:運行一次就清理clear一次,然後再用,這樣就把循環變成只執行一次
分析:
setTimeout (表達式,延時時間)
setInterval(表達式,交互時間)
延時時間/交互時間是以豪秒為單位的(1000ms=1s)
setTimeout 在執行時,是在載入後延遲指定時間後,去執行一次表達式,僅執行一次
setInterval 在執行時,它從載入後,每隔指定的時間就執行一次表達式
你可以網路setInterval和setTimeout的區別
㈤ 為什麼網站總出來崩潰的
面試某公司的時候,面試官問到,導致瀏覽器崩潰的原因有哪些?愚輩不才,僅回答出了內存泄漏。其實在網頁在裝載的過程中,常常由於種種原因使瀏覽器的反映變的很慢,或造成瀏覽器失去響應,甚至會導致機器無法進行其他的操作。 對於訪客,如果登錄您網站,瀏覽器就立刻崩潰,我想這對誰都是無法容忍的,對此總結了網站導致瀏覽器崩潰的原因: 1. 內存泄漏 還是先談下內存泄漏,網站由於內存泄漏的而照成崩潰有兩種情況,伺服器的崩潰和瀏覽器的崩潰。內存泄漏所造成的問題是顯而易見的,它使得已分配的內存的引用就會丟失,只要系統還在運行中,則進程就會一直使用該內存。這樣的結果是,曾佔用更多的內存的程序會降低系統性能,直到機器完全停止工作,才會完全清空內存。 Apache的Web伺服器是用C/C++編寫的,C/C++的內存泄漏問題不必多說,系統中存在無法回收的內存,有時候會造成內存不足或系統崩潰。在Java中,內存泄漏就是存在一些被分配的可達而無用的對象,這些對象不會被GC所回收,然而它卻佔用內存。 而在客戶端,JavaScript所造成的內存泄漏,也將可能使得瀏覽器崩潰。關於JavaScript的內存泄漏的文章,較權威的有《Memory leak patterns in JavaScript》和《Understanding and Solving Internet Explorer Leak Patterns》。 JavaScript 是一種垃圾收集式(garbage collector,GC)語言,這就是說,內存是根據對象的創建分配給該對象的,並會在沒有對該對象的引用時由瀏覽器收回。再根據《Fabulous Adventures In Coding》一文的說法:「JScript uses a nongenerational mark-and-sweep garbage collector.」,對」 nongenerational mark-and-sweep」的可以這樣理解,瀏覽器處理JavaScript並非採用純粹的垃圾收集,還使用引用計數來為Native對象(例如Dom、ActiveX Object)處理內存。 在引用計數系統,每個所引用的對象都會保留一個計數,以獲悉有多少對象正在引用它。如果計數為零,該對象就會被銷毀,其佔用的內存也會返回給堆。 當對象相互引用時,就構成循環引用,瀏覽器(IE6,Firefox2.0)對於純粹的JavaScript對象間的循環引用是可以正確處理的,但由於在引用計數系統,相互引用的對象都不能被銷毀,因為是引用計數永遠不能為零,因此瀏覽器無法處理JavaScript與Native對象(例如Dom、ActiveX Object)之間循環引用。所以,當我們出現Native對象與JavaScript對象間的循環引用時,就會出現內存泄漏的問題。 簡單來說就是,瀏覽器使用引用計數來為Native對象處理內存,而引用計數的對象無法被銷毀,涉及Native對象的循環引用將會出現內存泄漏。配合下面的例子,理解這句話,基本上就可以理解JavaScript造成的內存泄漏了。 var obj; window.onload = function(){ // JavaScript對象obj到DOM對象的引用,根據id獲得 obj=document.getElementById("DivElement"); // DOM 對象則有到此 JavaScript 對象的引用,由expandoProperty實現 document.getElementById("DivElement").expandoProperty=obj; }; 可見,JavaScript 對象和 DOM 對象間就產生了一個循環引用。由於 DOM 對象是通過引用計數管理的,所以兩個對象將都不能銷毀。 另一種情況是閉包中,當碰到閉包,我們在Native對象上綁定事件響應代碼時,很容易製造出Closure Memory Leak。其關鍵原因和前者是一樣的,也是一個跨JavaScript對象和Native對象的循環引用。只是代碼更為隱蔽。 window.onload = function AttachEvents(element){ //element有個引用指向函數ClickEventHandler() element.attachEvent( " onclick " , ClickEventHandler); function ClickEventHandler(){ //該函數有個引用指向AttachEvents(element)調用Scope, //也就是執行了參數element。 } } 這里簡單理解了JavaScript造成內存泄漏的原因,內存泄漏加大瀏覽器的負擔,很有可能導致瀏覽器崩潰,我們要做的就是盡量去避免這種情況,做法可參考剛剛所說《Memory leak patterns in JavaScript》和《Understanding and Solving Internet Explorer Leak Patterns》兩篇文章加以理解。處理JavaScript內存泄漏最終目的還是要打破JavaScript對象和Native對象間的循環引用或者清零引用計數,釋放對象。 一些內存泄漏如閉包內存泄漏,我們可能比較難以發現,內存泄漏的檢測我們可能參考《javascript 內存泄露工具使用》。 2. 網頁代碼復雜和瀏覽器bug 大量個人網站和低質量網站代碼的涌現造成對瀏覽標準的普遍不支持,如果正好碰上瀏覽器存在的一些bug,瀏覽器渲染引擎在處理這些網頁代碼的時候會出錯,比如陷入死循環或直接崩潰等。 HTML代碼導致網站崩潰 這是HTML結構錯誤而導致IE6的崩潰,在<col width="100"/>前或後添加任何字元均會導致IE6 Crash。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"" http://www.w3.org/TR/html4/loose.dtd"> <html><head></head><body> <table> <tr> <td> <table style="width:100%;table-layout:fixed;"> <colgroup><col width="100px"><col></colgroup> </table> </td> </tr><table></body></html> 該代碼來個韓國的一個網站,無論是使用XHTML或者HTML的什麼版本,只要帶了DOCTYPE聲明,IE6就會立即崩潰,當不帶DOCTYPE聲明的時候就沒有錯誤,原因可能跟文檔類型聲明有關。 令IE6崩潰的CSS代碼 該代碼參考自網站Cats who Code。該Bug發現與2007年,據說是一名日本人發現的: <style>*{position:relative}</style><table><input></table> 原因在於table中直接放置內容,在IE6會引起mshtml.dll模塊損壞而關閉瀏覽器,非IE6則安全無恙。 除此之外,存在於IE6的Bug還有下面這種情況,當偽類為 a:active 時同樣會遇到此問題: <style type="text/css"> a{position:relative;} a:hover{float:left;} </style><a href="">崩潰IE6 ,crash ie6</a> 解決方案:為 <a> 添加 zoom:1; 令其觸發haslayout。 <style type="text/css"> a{position:relative;zoom:1;} a:hover{float:left;} </style> 令IE7崩潰的CSS代碼 此Bug來自偷米飯,它只存在IE7中據估計是處理省略字的時候導致IE7崩潰。 <style type="text/css"> div{float:left;width:175px;} ul{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;} li{position:relative;} </style><div> <ul> <li>崩潰崩潰崩潰崩潰崩潰crash ie7</li> <li>崩潰崩潰崩潰崩潰崩潰crash ie7</li> </ul></div> 解決方案:為 <li> 添加 zoom:1; 令其觸發haslayout 令IE6崩潰的JavaScript代碼 來自Internet Explorer Sucks,這個網站就是使用了一下代碼,當你使用IE6訪問的時候,瀏覽器將立刻崩潰。代碼如下: <script>for (x in document.write) { document.write(x);}</script> 具體引起的原因暫時無法解析,但在兼容性和執行效率來看一般不會採取這樣的寫法。 3. 網頁數據過多 網頁含有大量需要處理的數據,造成系統繁忙,如多圖頁面,超長頁面等,或者網頁內嵌的各種控制項會導致瀏覽器處理大量數據,造成系統繁忙。如Flash游戲,ActiveX控制項等。當瀏覽器訪問網站的時候,如果網站的數據量大,會使得瀏覽器一般在處理過程中會佔用很大的CPU使用率和內存、造成瀏覽器失去響應,甚至會使電腦系統死機。在網站開發的時候,如果充分考慮Web性能,很大程度上能避免這個問題。 4. Ajax的Web服務漏洞 Ajax的是基於XML的非同步傳輸,文本格式的XML消息可能是二進制數據帶寬量的兩倍之多。傳輸XML消息所需的帶寬越多,系統或應用程序用來執行其他任務的可用資源就越少。例如執行復雜演算法來獲取期望結果。 過高的帶寬可能導致由系統超載引起的性能減退。過高的帶寬將導致Ajax應用程序輸出破損的數據,因為沒有足夠的資源生成干凈的數據。這意味著Web服務門戶(Ajax應用程序屬於其中的一部分)將把破損數據暴露給門戶的其他部分,從而導致畸形消息和過度解析。如果威脅者利用了這個漏洞,則會引起瀏覽器崩潰。 另外一方面,頻繁的、較小的 HTTP 請求會加重後端伺服器、負載均衡程序和防火牆的負擔,結果是造成過高的帶寬,最終導致性能降低。如果客戶端長期停留在該頁面或沒有關閉瀏覽器,會使得瀏覽器的內存持續上漲,得不到釋放,導致客戶端瀏覽器崩潰。 為此,在較多的時候Ajax的時候,我們要考慮通過專門的硬體加速器、優化軟體、消除代碼冗餘、XML加速功能和解決互操作性問題等方式加速Ajax應用程序。另外,積極地監視通信流可以持續地度量Ajax應用程序的網路流量性能。通過將數據放入實時日誌中,您可以查看在哪些位置何時出現大量的包丟失和抖動事件,響應變慢的原因以及如何通過修改應用程序的優先順序來改善通信流性能。 5. 其他原因 除以上提到的原因之外,還有其他許多原因,雖然有些不會導致瀏覽器直接崩潰,但也會造成網站無法訪問,如日誌文件導致磁碟已滿、Web伺服器C指針錯誤、進程缺乏文件描述符、線程死鎖、資料庫中的臨時表不夠用和伺服器超載等,可參考《導致Web站點崩潰最常見的七大原因》。 總結 對於訪客,如果登錄您網站,瀏覽器就立刻崩潰,我想這對誰都是無法容忍的,通過總結《網站令瀏覽器崩潰的原因》,在我們從事網站開發維護的時候,我們應該盡量去避免內存泄漏、代碼錯誤和冗餘及數據量過大等問題,構建更佳性能的站點。
記得採納啊
㈥ HTML網頁製作後,瀏覽器不兼容的問題一般怎麼解決 div層錯位,該如何解決 對於前端工程師是很頭疼的事
兼容問題很容易解決的!自己在製作網頁中規范你的樣式,div層,注意浮動後要消除浮動
㈦ 頁面崩潰該如何解決是什麼原因導致頁面崩潰
頁面崩潰是指頁面上的腳本和瀏覽器不兼容,或者瀏覽器本身存在問題,從而產生網頁與電腦里的某一程序產生沖突的現象。
頁面崩潰的解決辦法
如果經常遇到這種狀況,我們可以通過加大虛擬內存,整理碎片這兩種方法來解決。 也可以使用專門的工具軟體,比如System File Defragmenter等。 去刪掉你帶有你Q號那個文件夾《不用擔心 它會自動重建一個的》 1、點擊IE瀏覽器中的「工具」,選擇「internet選項」。 2、在「常規」頁面點擊「刪除文件」。 3、然後勾上「同時刪除離線內容」,點擊確定。 二、打開「internet選項」後,進入「安全」頁面,點擊「自定義級別」。 將「對標記為可安全執行腳本的ActiveX控制項執行腳本」設置為「啟用」。 4 點開始-運行 輸入regsvr32 jscript.dll後選擇「確定」 再次輸入regsvr32 vbscript.dll選擇「確定」
㈧ 求前端人員來解惑,調測的js代碼錯誤,chrome網頁會卡住
代碼裡面死循環之內的,直接把內存都給你飈滿了,chrome有那個心給你報錯卻沒那個力,它自己都動不了達...
你把卡住的瀏覽器關了,進程結束,內存滿血復活,於是你也不仔細改改,又弄段代碼去卡死瀏覽器,我個人覺得你這個人就是個死循環。
㈨ 怎麼解決Chrome瀏覽器「Failed to load resource:net:ERR
解決方式:重新卸載安裝Chrome瀏覽器;
Chrome瀏覽器出現「Failed to load resource:net:ERR說明緩存讀取失敗,可能是緩存文件被意外清除,一般是使用第三方清理程序清理瀏覽器導致;
Google Chrome的特點是簡潔、快速。GoogleChrome支持多標簽瀏覽,每個標簽頁面都在獨立的「沙箱」內運行,在提高安全性的同時,一個標簽頁面的崩潰也不會導致其他標簽頁面被關閉。此外,Google Chrome基於更強大的JavaScriptV8引擎,這是當前Web瀏覽器所無法實現的。
(9)前端寫演算法瀏覽器崩潰擴展閱讀:
Chrome最大的亮點在於其多進程架構,保護瀏覽器不會因惡意網頁和應用軟體而崩潰。每個標簽、窗口和插件都在各自的環境中運行,因此一個站點出了問題不會影響打開其它站點。通過將每個站點和應用軟體限制在一個封閉的環境中這種架構,這進一步提高了系統的安全性。
使用WebKit引擎。WebKit簡易小巧,並能有效率的運用存儲器,對新開發者來說相當容易上手。Chrome具有DNS預先截取功能。當瀏覽網頁時,「Google Chrome」可查詢或預先截取網頁上所有鏈接的IP地址。目標網頁。
Chrome具有GPU硬體加速:當激活GPU硬體加速時,使用「Google Chrome」瀏覽那些含有大量圖片之網站時可以更快渲染完成並使頁面滾動時不會出現圖像破裂的問題。
㈩ web前端瀏覽器兼容常見問題。。。
問題症狀:隨便寫幾個標簽,不加樣式控制的情況下,各自的margin 和padding差異較大。
碰到頻率:100%
解決方案:css里 *{margin:0;padding:0;}
備註:這個是最常見的也是最易解決的一個瀏覽器兼容性問題,幾乎所有的css文件開頭都會用通配符*來設置各個標簽的內外補丁是0。
瀏覽器兼容問題二:塊屬性標簽float後,又有橫行的margin情況下,在ie6顯示margin比設置的大
問題症狀:常見症狀是ie6中後面的一塊被頂到下一行
碰到頻率:90%(稍微復雜點的頁面都會碰到,float布局最常見的瀏覽器兼容問題)
解決方案:在float的標簽樣式控制中加入 display:inline;將其轉化為行內屬性
備註:我們最常用的就是div+css布局了,而div就是一個典型的塊屬性標簽,橫向布局的時候我們通常都是用div float實現的,橫向的間距設置如果用margin實現,這就是一個必然會碰到的兼容性問題。
瀏覽器兼容問題三:設置較小高度標簽(一般小於10px),在ie6,ie7,遨遊中高度超出自己設置高度
問題症狀:ie6、7和遨遊里這個標簽的高度不受控制,超出自己設置的高度
碰到頻率:60%
解決方案:給超出高度的標簽設置overflow:hidden;或者設置行高line-height 小於你設置的高度。
備註:這種情況一般出現在我們設置小圓角背景的標簽里。出現這個問題的原因是ie8之前的瀏覽器都會給標簽一個最小默認的行高的高度。即使你的標簽是空的,這個標簽的高度還是會達到默認的行高。
瀏覽器兼容問題四:行內屬性標簽,設置display:block後採用float布局,又有橫行的margin的情況,ie6間距bug(類似第二種)
問題症狀:ie6里的間距比超過設置的間距
碰到幾率:20%
解決方案:在display:block;後面加入display:inline;display:table;
備註:行內屬性標簽,為了設置寬高,我們需要設置display:block;(除了input標簽比較特殊)。在用float布局並有橫向的margin後,在ie6下,他就具有了塊屬性float後的橫向margin的bug。不過因為它本身就是行內屬性標簽,所以我們再加上display:inline的話,它的高寬就不可設了。這時候我們還需要在display:inline後面加入display:talbe。
瀏覽器兼容問題五:圖片默認有間距
問題症狀:幾個img標簽放在一起的時候,有些瀏覽器會有默認的間距,加了問題一中提到的通配符也不起作用。
碰到幾率:20%
解決方案:使用float屬性為img布局
備註:因為img標簽是行內屬性標簽,所以只要不超出容器寬度,img標簽都會排在一行里,但是部分瀏覽器的img標簽之間會有個間距。去掉這個間距使用float是正道。