2013-07-12 149 views
0

我的網站上有一些奇怪的行爲,我不知道如何解決它。刷新後奇怪的網站行爲

一個重要的事實開始:當我點擊地址欄,並點擊進入網站加載非常好,但是當我用F5刷新它的噩夢發生。例如,我用這個jQuery腳本來對齊div:

jQuery.fn.center = function(parent) { 
    if (parent) { 
     parent = this.parent(); 
    } else { 
     parent = window; 
    } 
    this.css({ 
     "position": "fixed", 
     "top": ((($(parent).height() - this.outerHeight())/2) + $(parent).scrollTop() + "px"), 
     "left": ((($(parent).width() - this.outerWidth())/2) + $(parent).scrollLeft() + "px") 
    }); 
return this; 
} 

並刷新div後消失。我發現這是因爲它的「頂級」屬性是以非常奇怪的方式分配的。在第一次入口後,第二次刷新後,它的「top」屬性設置爲900px,第三次刷新後爲1100px。

另一件事是我在我的網站上使用這個日曆腳本:http://www.eyecon.ro/datepicker/。我只是把它分配給塊並且一切正常,但是在點擊F5之後有時會變成雙倍(顯示雙日曆)和類似的東西。我認爲這可能會發生,因爲我使用網站上的表單和一些JavaScript來處理它(現代瀏覽器記住刷新後的輸入值),所以我在整個表單上設置了autcomplete =「off」。沒有解決問題。這可能是什麼原因?

+1

在文檔準備好之後,您是否在執行所有腳本?如果不是的話,那可能是問題所在,因爲在第一頁加載時,你的brwoser會檢索所需的所有圖像腳本等,第二個它們可能已經被緩存了,因此行爲可能會改變! – luk2302

回答

1

你如何實現函數的調用?在「澆水準備好」之後發生什麼事情?

$(document).ready(function() { 
    // javascript code here 
}); 
+0

所有的JS代碼都是在關閉標籤AND之前在$(document).ready()函數中(註冊新函數除外) – user2394156

+0

我剛注意到ctrl + F5而不是隻有F5有幫助。這兩者之間有什麼不同? – user2394156

+0

@ user2394156一個清除緩存,一個不會 – luk2302

0

好的我剛剛發現了一些線索。

Ctrl + F5幫助,因爲它是關於清除緩存它可能是它。但我仍然不知道爲什麼會這樣,因爲當我看在頭我看到這一點:

HTTP/1.1 200 OK 
Date: Fri, 12 Jul 2013 09:03:12 GMT 
Server: Apache/2.4.3 (Win32) OpenSSL/1.0.1c PHP/5.4.7 
X-Powered-By: PHP/5.4.7 
**Cache-Control: no-cache** 
X-Debug-Token: a4c0e3 
Keep-Alive: timeout=5, max=100 
Connection: Keep-Alive 
Transfer-Encoding: chunked 
Content-Type: text/html; charset=UTF-8 

所以看起來緩存不應該工作?爲什麼呢?