javascript
  • html5
  • design
  • 2016-08-19 68 views 7 likes 
    7

    由於RIA和SPA(或使用JavaScript的Web應用程序)變得越來越流行,我一直在使用系統,而不是使用舊的超鏈接a href,我看到它們利用帶有操作導航的JavaScript代碼的onclick構造。圖像尤其如此。使用JavaScript代替超鏈接

    例如,而不是看到這樣的事情:

    <a href="some_url"><img src="...."/></a> 
    
    <div ... onclick='SomeJsFunctionThatNavsToAnotherPage()'><img src="..."/></a> 
    

    這樣做有什麼好處?它使得難以置信地很難跟蹤頁面在調試或嘗試根源導致錯誤時轉換到哪裏。當導航的目標可以改變時,我可以得到這個想法(所以是的,在這裏你可以使用計算到哪個頁面導航到的函數)。

    但是我看到這種模式,即使當頁面導航到常量。我覺得這非常複雜,很難測試。更何況,總是存在特定於瀏覽器的錯誤(根據我的經驗,過度複雜化前端)總是存在的。

    但我不是RIA/SPA開發人員(只是後端和傳統網絡發展)。 我是否錯過了背後的理由?


    澄清

    我的問題是不適合的情況下,當我們要重繪頁面或更改當前的內容,而不改變當前位置。我的問題是,對於原來的 舊轉換,從頁面A到頁面B.

    在這種情況下,爲什麼要使用onclick=funcToChangeLocation()而不是<a href="some location"/>

    這對我來說是一個痛苦,當排除系統已被寫入(因爲我不會寫他們那樣),但可能有我不知道的原因。

    同樣,我的問題不是在不更改瀏覽器位置的情況下自行重新繪製頁面,而是從一個頁面導航到另一個頁面。


    ALSO

    如果你去投票,關閉了這個問題,至少留言說明原因。

    +1

    將div與點擊處理程序而不是錨點一起使用是不好的做法,因爲它使得鍵盤用戶無法訪問該功能。 (使用點擊處理程序導航到某個計算出的目標可以使用錨點。) – nnnnnn

    +0

    不夠公平。但是當你知道目的地在大多數情況下是靜態的,並且當頁面中錨點的唯一功能是簡單地轉換到另一個頁面(沒有副作用)時,通過點擊處理程序而不是錨點使用錨點有什麼好處與簡單的hrefs? –

    +0

    如果點擊處理程序沒有添加任何超出普通錨點可以完成的操作,那麼我根本沒有看到任何點。 – nnnnnn

    回答

    5

    如果您正在製作Web應用程序,有時您不想將用戶重定向到其他頁面,但是您希望動態更改頁面的內容而不刷新頁面。它有一些優點。它可以更快。您可以輕鬆保持頁面/應用程序的狀態。您沒有義務與服務器通信。您只能更新頁面的一部分。

    您也可以動態請求數據以打印頁面。如果您正在顯示用戶配置文件頁面,則只能請求代表該用戶的json對象。這個json對象比整個頁面小,並且會動態呈現。當您的帶寬有限時,它可以幫助減少用戶和服務器之間的數據傳輸。

    編輯:在簡單的頁面重定向的情況下,我認爲這是一個不好的做法,我看不到優勢。當谷歌抓取工具嘗試解析網站時,我認爲它會混淆網站。

    +0

    我瞭解您正在描述的內容的使用情況,在不改變當前頁面的情況下動態重新繪製內容。我的問題是簡單的導航;從頁面A到頁面B.爲什麼使用'onclick'而不是'href'。 –

    +0

    @ luis.espinal編輯 – rm4

    +1

    感謝您的澄清。 –

    2

    我曾經有一個非常成功的網站目錄網站。有一天,谷歌決定「目錄」是相互競爭的企業,並開始懲罰有目錄鏈接的網站。我用你描述的方法來掩飾傳出鏈接,試圖欺騙Google。

    +0

    我可以看到這是一個合法的用法。但我的問題是內部應用程序,例如,它不會被谷歌索引。 –

    +1

    我能想到的唯一原因是,如果你想隱藏鼠標懸停狀態欄中的URL。 –

    +0

    啊,我沒有想到這一點。這可能是合法的要求。謝謝。 –

    相關問題