2012-01-09 81 views
0

在我看來,像Knockout這樣的js框架採取了「全有或全無」的開發方式:您要麼採用100%的javascript功能,要麼完全避免使用框架。Javascript框架和漸進增強

這些框架下列情形似乎不切實際:

1)搜索引擎優化和/或可訪問性是主要問題 2)現有的Web應用程序需要分層爲標記生成服務器端

什麼是JS功能您傢伙的想法?我真的很喜歡使用所有客戶端代碼的框架。我的首選是knockout.js,因爲文檔和示例看起來比主幹更堅實。

謝謝!

+2

我不認爲這會影響搜索引擎優化 - 我的意思是,你有責任渲染與谷歌需要看到的任何頁面。然後用KO在上面加上鈴鐺和哨子 – 2012-01-09 05:14:18

回答

2

我認爲這是一件好事,它終於轉向全有或全無的方法,這些類型的框架應該只能這樣使用。

SEO:在構建Web應用程序時,通常只有註冊用戶才能訪問它。因此,您只需優化面向公衆的SEO頁面。此外,Google現在還可以抓取使用JS生成的頁面。可訪問性:這一直引起人們的關注,但不幸的是,很多人並不知道這意味着什麼。我和盲人一起工作了一年多,與當時的開發人員不同,屏幕閱讀器能夠很好地處理JavaScript。如果它真的很重要,請爲您的網站提供針對特定殘障人士的不同版本(例如,視力不好的人像使用em而不是px創建CSS一樣簡單,以便它仍然可以在不同的縮放級別下工作)。

現有的應用程序:擴展您的現有應用程序,以便它可以提供某種JSON REST web服務。這是您必須對這些框架進行的調整。這樣您還可以輕鬆創建不同版本(例如移動)的應用程序。

+0

謝謝,Daff。精彩的指導。然而,根據我的經驗,有一些網站具有高度的功能,可以被視爲「應用程序」,面向公衆。以這個網站爲例,大多數內容被加載到服務器端,並且大量的js糖被撒上。我很樂意使用強化SRP的框架。但是,似乎我不得不把工作翻倍以刮擦網站,並將框架所需的所有內容加載到內存中以使其工作... – drogon 2012-01-09 05:49:40

+0

是的,這是一種折衷。不確定是否有專門針對這種兼容性的JavaScript框架。基本上添加糖你只需要jQuery,而不是一個MVC風格的框架。 – Daff 2012-01-09 18:39:08

1

我想我已經根據反饋和決策我一直在讀什麼:

,我要考慮的最重要的事情就是成本(時間,資源等)進行漸進式的增強與獲得的利益。 PE似乎真的減慢了前端的開發速度,因爲在許多情況下,如果服務器端代碼儘可能被重用,你還需要做更多的工作來讓服務器和客戶端都能正常工作。另外,PE往往不適合先進的客戶端技術和框架,比如json和knockout/backbone。無論我是否正在處理基於文檔或基於應用程序的Web項目 - 在很多情況下,我無法真正說出它,似乎線條模糊不清 - 這是我的(新)決策樹:

If SEO is a concern, use progressive enhancement. Don’t rely on rumors that content loaded from javascript gets indexed! 

If Accessiblity is a concern, use progressive enhancement. Just not ready for js in this arena. 

If lack of javascript is a major concern, use progressive enhancement. Not sure if this should ever be a major concern anymore… 

If it’s simple content where js will buy you little, just do the traditional web development 

Otherwise, rely on clean javascript and server-side services, take and OO approach using a js framework! 

謝謝!

0

當前版本的淘汰賽對PE原則看起來不太友好。 Here我實現了特殊的模板綁定,用於敲除任何使用服務器端HTML的模板,而不是在客戶端重新構建HTML。我想擴展這項工作,所以如果任何人有任何想法,請告訴我。