2012-02-14 125 views
1

我自己製作網站已經有幾個月的時間了,儘管我理解如何將JavaScript添加到網站的概念,但我真的很困擾如何最好地去理解它,一些有經驗的開發者意見/建議將Javascript添加到網站上

我已經閱讀了無數次,因此最好先建立一個簡單的站點,然後再添加Javascript。這樣,無論如何,該網站都可以運行得非常好。對於像動畫這樣的東西來說,這是一個很好的主意,基本上,這是一個在頁面上運行的Javascript。

但是,如果你有一個網站與服務器生成的內容。並且說,爲了縮短頁面上的加載時間,您希望通過ajax調用加載部分內容。你如何去添加到網站?

據我所知,您不能在服務器上知道您的客戶端在頁面刷新時是否啓用了Javascript或禁用了Javascript ...所以您不能將內容留在服務器上。但是,如果您將所有內容發送給客戶端,那麼您不再需要頁面上的ajax。

在這種情況下,您通常會如何處理它?你是否建立和版本的鏈接,並告知服務器以哪種方式加載哪個版本? 但是,這仍然不會告訴你,用戶是否有刷新或不啓動腳本...

或者你只是做喜歡Facebook和易趣,並忽略禁用腳本的用戶?

+3

也許[網站管理員](http://webmasters.stackexchange.com/)將成爲這個問題更好的論壇。 – 2012-02-14 23:20:56

+3

谷歌「漸進式增強」。你會發現無盡的文章討論這一點。 – 2012-02-14 23:24:48

回答

1

的JavaScript增加了這麼多的潛力,它有時是不明智的,這麼多的努力集中到創建一個網站,對於那些禁用它的少數用戶來說,它是完美的。

通常在網站的規劃階段,我確定哪些功能需要以及哪些功能只是增強功能,如動畫或動態內容加載。我將故障安放在適合需求的位置,同時將其餘內容限制爲啓用JS的訪問者。

我構建我的網站的方式是所有重要內容仍然可以以任何方式通過任何方式訪問,但是當涉及需要使用JavaScript的「額外」時,我不會浪費寶貴的時間迎合不到1%我的訪客。

+0

謝謝,這裏有很多有用的東西,但你最接近提供答案。 – 2012-02-15 04:36:23

0

1)我個人會忽略沒有javascript的人。 2)加載Web部件是一種個人風格,如果你想要硬核模式,加載不同的Web部件可能會有變量/ id /類名稱衝突,所以要小心它們。

+1

忽略沒有javascript的人是一個壞主意,除非你只關注交互;應該可以查看內容,不管 – Hawken 2012-02-14 23:42:39

+0

也許我應該重新說明它,以免花費太多時間在非js用戶上。或者建議他們的網站需要啓用JS。 – 2012-02-15 00:06:55

+0

如果忽略沒有javascript的人對你來說是個壞主意,那麼你可能也想支持ie6。取決於你有多少時間,你定位的用戶是什麼,你希望網站有多完美。 – 2012-02-15 00:15:02

1

技術正在遠離沒有javascript的人,所以這可能會被忽略。

但是,如果您必須支持這些類型的用戶,當點擊並通過ajax加載時,「攔截」html鏈接/按鈕是一種流行做法。如果用戶不具有javascript,則鏈接/按鈕將正常工作。

這種類型的'攔截'概念涵蓋在漸進增強概念。

+0

漸進式增強...我知道我不是在用google搜索正確的東西。我會看看那個。謝謝。 – 2012-02-15 04:37:12

1

從視覺上看,至少似乎AJAX加載會感覺比較慢(從技術方面來說這很有意義,因爲它使用另一個GET請求)。

JavaScript應保留用於交互式加載內容,而不是預加載所有內容。

如果你真的想我只能推薦預加載圖像,而不是內容的其他「頁面」

1

我會聽從Mike Samuel的建議,因爲StackOverflow可能不是問這類問題的最佳地點。

首先,你應該問自己,你的網站的性質會是什麼樣子。依靠Javascript並不是一個好主意,因爲你會拒絕一些潛在的觀衆(幸運的是,每天都會少一些)。在諸如Gmail之類的網絡應用中,這是有道理的,但絕不應該要求您的觀看者啓用Javascript來爲網站的功能做一些必要的事情。

知道可用的不同技術及其在網站開發中的位置也很重要。當然,大3:

  • HTML:內容
  • CSS:演示(這可能是在那裏你會 要使用動畫(除非它是必不可少的),不使用Javascript)
  • 的Javascript:互動

儘管很少練習,我會建議您在不使用CSS,Javascript或其他任何東西的情況下使您的網站充分發揮作用,然後再着手添加這些技術。這是確保每個人都至少可以查看您的內容的一種近乎確定的方式。

0

指望您的用戶啓用了javascript,但是不允許那些禁用javascript的用戶打開安全漏洞。 按@Hawken編輯:另外,如果javascript被禁用,則不要讓用戶通常看不到的內容。

JavaScript是非常通用的,因此它有很多不同的用途。爲了進行更流暢的交互,可以使用Javascript將圖像預加載到客戶端緩存中。

Javascript可用於促進動態內容替換或重疊頁面上的其他內容。

如果您想查詢服務器並在不刷新整個頁面的情況下返回數據,那麼AJAX非常棒。還有其他方法可以做到這一點,但通常涉及框架。

AJAX也是有好處的,當你想動態加載腳本或諸如從遠程位置頁部分其他數據(相同的域或其他域 - 其他領域會變得複雜。)

作爲一個經驗法則,使用javascript增強客戶端瀏覽

+0

當然,這些框架通常都會使用xmlhttprequest;) – 2012-02-14 23:55:23

+0

@JeffreySweeney - 是的:)我也在談論服務器端框架。在asp.net mvc中,您可以製作部分視圖,可以實際重新呈現而無需重新加載頁面。 – 2012-02-14 23:57:57