一、 內存泄漏
網站由于內存泄漏的而照成崩潰有兩種情況,服務器的崩潰和瀏覽器的崩潰。內存泄漏所造成的問題是顯而易見的,它使得已分配的內存的引用就會丟失,只要系統還在運行中,則進程就會一直使用該內存。這樣的結果是,曾占用更多的內存的程序會降低系統性能,直到機器完全停止工作,才會完全清空內存。
1、網站的程序代碼編寫不規范
引起的內存泄漏問題不必多說,系統中存在無法回收的內存,有時候會造成內存不足或系統崩潰。
2、在客戶端,所造成的內存泄漏,也將可能使得瀏覽器崩潰
是一種垃圾收集式(GC)語言,這就是說,內存是根據對象的創建分配給該對象的,并會在沒有對該對象的引用時由瀏覽器收回。瀏覽器處理并非采用純粹的垃圾收集瀏覽器崩潰是什么原因,還使用引用計數來為對象(例如 Dom、 )處理內存。在引用計數系統,每個所引用的對象都會保留一個計數,以獲悉有多少對象正在引用它。如果計數為零,該對象就會被銷毀,其占用的內存也會返回給堆。
簡單來說就是,瀏覽器使用引用計數來為對象處理內存,而引用計數的對象無法被銷毀,涉及對象的循環引用將會出現內存泄漏。
二. 網頁數據過多
網頁含有大量需要處理的數據,造成系統繁忙,如多圖頁面,超長頁面等,或者網頁內嵌的各種控件會導致瀏覽器處理大量數據,造成系統繁忙。如Flash游戲,控件等。當瀏覽器訪問網站的時候,如果網站的數據量大,會使得瀏覽器一般在處理過程中會占用很大的CPU使用率和內存、造成瀏覽器失去響應,甚至會使電腦系統死機。在網站開發的時候瀏覽器崩潰是什么原因,如果充分考慮Web性能,很大程度上能避免這個問題。
三、其他原因
除以上提到的原因之外,還有其他許多原因,雖然有些不會導致瀏覽器直接崩潰,但也會造成網站無法訪問,如日志文件導致磁盤已滿、Web服務器C指針錯誤、進程缺乏文件描述符、線程死鎖、數據庫中的臨時表不夠用和服務器超載等