2013-02-16 72 views
2

示例代碼:應該鏈接導航到新頁面,或顯示不同的div?

沒有頁面導航:

<body> 
    <nav> 
     // Navigation links to the parts of the site. 
     // Clicking a link calls a javascript function to display the relevant <div> 
    </nav> 
    <section id="page1"> 
     // Page 1 content 
    </section> 
    <section id="page2"> 
     // Page 2 content 
    </section> 
</body> 

頁面導航:

// Page1.php: 
<body> 
    <nav> 
     // Navigation links to parts of the site. 
     // Act as normal <a> tags, redirecting the browser to the new page 
    </nav> 
    <section> 
     // Page1 content 
    </section> 
</body> 

// Page2.php: 
<body> 
    <nav> 
     // Navigation links to parts of the site. 
     // Act as normal <a> tags, redirecting the browser to the new page 
    </nav> 
    <section> 
     // Page2 content 
    </section> 
</body> 

優點的鏈接導航:

  • 的瀏覽器並不需要一次全部加載整個網站

  • 沒有使用該網站

  • 提供直接的網址,方便導航

  • 似乎是標準的東西所需的JavaScript做

優點爲JavaScript導航:

  • 爲重的服務器端腳本(像我)的網站,最大限度地減少頁面請求

  • 無需在不同的地方相同的代碼(<nav>元素,例如)。 PHP創建echo_nav_html()函數不是一個很好的解決方案,因爲它使編碼在IDE環境惱人

  • 初始加載後,網站是超快的,因爲幾乎沒有任何新的請求被髮送到服務器

明智的互聯網,對此有何想法?

或者也許更優雅的解決方案,提供列出的JavaScript導航專業?

回答

2

最好的解決辦法是同時做兩個。

在錨點上的HREF上有有效鏈接,但包括加載div並禁用HREF進度的onClick操作。

閱讀graceful degradationprogressive enhancement

提供非JavaScript代碼有很多原因。並非所有瀏覽器都支持JavaScript。許多企業網絡仍然使用IE的古老版本,這些版本的行爲可能不可預測,或者他們可能會強制配置,從而完全禁用JS。

您希望您的網站能夠被所有人使用,但爲擁有支持該技術的用戶提供最佳體驗。

0

如果你正在使用大量的服務器端代碼(假設這意味着動態內容生成/人口),我可能會使用鏈接到其他頁面,因爲我無法想象加載您可能訪問的所有內容初始加載的網站是真正的資源高效的,特別是假設不是每個用戶都會訪問網站的任何部分。

您仍然可以使用javascript,但是我只會在實際請求時生成內容;無論是通過AJAX調用(以便在那裏調用URL)或加載新頁面。似乎對我來說是浪費時間在運行時加載所有內容......但這只是我。

+0

你錯過了 - 每個頁面都需要對象和類,比如'User'類,並且加載頁面意味着我只需要運行一次必要的數據庫查詢和構建腳本 – Dori 2013-02-16 19:41:37

+0

這就是一個應用程序通常有效這就是爲什麼你使用對象,所以你可以重用代碼在一個簡單的界面。該限制並不能證明通過針對您網站的全部內容發出單一請求而產生的浪費。如果您必須重複使用的對象造成很多開銷,那麼重新評估這些對象可能會很好。只是試圖幫助。 – frosty 2013-02-16 20:25:54

+0

不是忘恩負義,只是我不會匆忙重寫我的課程......感謝您的幫助 – Dori 2013-02-16 20:40:49

相關問題