2011-06-30 85 views
0

我想比較具有客戶方路由1頁的應用程序具有ASP MVC應用程序,它只是路線HTML文件,看看哪個更適合我目前的項目。因爲我不需要任何Asp Mvc的所有javascript/html與Web服務通信。動態添加和使用jQuery(或其他圖書館)去除的JavaScript/CSS

然而一個問題,我可以用一個網頁應用程序預見的是,我的網站真的心不是1頁,所以我將不得不對其中包含的所有共享資源爲主的index.html。然後根據hashbang動態加載新頁面並添加任何必需的腳本和css。這似乎並不硬在jQuery我相信提供.load()方法或類似的獲取外部資源的東西......我的問題,雖然是讓他們擺脫一旦我做了...

有什麼這樣做的方式,所以你只針對某些腳本/鏈接標籤,你可以給他們IDS或什麼?

任何幫助將是巨大的......

== ==編輯

添加了一個簡單的例子來說明我的意思:

<!-- Script already in page --> 
<script type="text/javascript" src="scripts/script1.js"></script> 
<!-- Dynamically added script --> 
<script type="text/javascript"> 
// some javascript 
</script> 

你怎麼知道哪些你應該刪除?如果你可以對每個腳本應用一個id或唯一性,那麼它可能沒問題,但是這就是我對這個問題的看法。

回答

0

我不shre我明白你爲什麼想這樣做,但link元素(CSS)和script(對於JS)是像任何其他的元素,他們可以用remove()被刪除。

+0

是的,但並不意味着沒有被加載到memeory /緩存 – mcgrailm

+0

我相信在緩存中提出的瀏覽器/顯存是失控的。 – Litek

+0

我更擔心你怎麼知道*,其中*鏈接/ script標籤刪除......因爲如果你開始添加一些動態那麼他們只是要像所有其他標籤,只是用不同的src/HREF – somemvcperson

1

「去除資源」沒有任何好處。加載腳本後,從頁面中刪除腳本標記沒有任何用處 - 它不會完全改善您的瀏覽器性能,也不會損害它來保持文件。

只需添加您的資源,根據需要和編寫代碼,使得它不會錯誤地執行。

+0

您提出了一個很好的觀點,我沒有想到......這就是爲什麼使用asp mvc作爲我的路由選擇並重定向到html頁面是一個不錯的選擇,因爲每次加載新的內部頁面時都需要重置頁面。通過ajax做它不會重置任何東西,所以如果我有事件監聽器或jQuery的效果,他們會堅持你提到的...我有不同的CSS文件的每個子頁面,其中一些如果加載在一起會導致瘋狂的行爲。 ..看起來像它的服務器端回發然後:( – somemvcperson

+0

如果你的代碼已經寫好了,那麼很難做到你想要的。我相信你可以卸載CSS,這是一個不同的球賽。至於聽衆,所以在scriptA中,當你綁定的時候,你首先做一個解除綁定然後綁定,然後在scriptB中做同樣的事情,當scriptB被加載時,它將解除scriptA中衝突的事件。 ('#elem')。unbind('click')。click(...)' –

+0

是的,似乎現在使用服務器端進行路由是我的最佳選擇,如果可能,我只想純粹客戶端,但蹦蹦跳跳的數量將是一個痛苦,而我會對搜索引擎不友好蝙蝠...感謝您的建議...我會標記帖子,但這只是一個未註冊的帳戶:( – somemvcperson