2014-02-20 123 views
2

使用Visual Studio 2012創建網頁並使用「ASP.NET網站(Razor v2)」創建Im使用Java生成隨機鏈接;從列表中選擇一個隨機url並顯示爲URL

<script> 
var random = new Array(); 
random[0] = "example1.com"; 
random[1] = "pattern1.com"; 
random[2] = "specimen1.com"; 
</script> 

<script> 
    function randomlink() { 
     window.location = random[Math.floor(Math.random() * random.length)]; 
    } 
</script> 

<a href="javascript:randomlink()" style="color: black;">A Random URL</a> 

當我點擊一個隨機URL鏈接時,它會從上面的腳本的列表中打開一個隨機頁面。我認爲一切都很好,但是因爲它是一個很大的列表,我需要一種方法來做同樣的事情,而不用HTML,因爲它在_SiteLayout.cshtml中減慢了頁面的加載速度。謝謝。

回答

2

在你的選擇是下列選項:

  1. 將所有的URL到客戶端,讓客戶端選擇一個隨機的選擇。
  2. 在服務器預先挑選隨機URL,並只發送一個客戶端(也可以只直接投入的<a>連接,無需對JavaScript的。
  3. ,從AJAX請求到服務器請求隨機鏈接,並在返回的時候,去了。
  4. 進行GET請求到服務器,讓服務器返回一個重定向到一個隨機選擇的網址。

這聽起來像你不想要實現第一個選項,如果你有一個zillion的URL。

第二個選項可能是最簡單的,因爲它只需稍微修改頁面的生成,並且不需要新的服務器API。你只需要弄清楚如何在你的服務器端環境中選擇一個隨機的URL。

第三個和第四個選項效率最低,因爲它們需要調用服務器,服務器使用新URL進行響應,然後將客戶端重定向到實際URL。

1

當它從服務器呈現時,我會將該隨機URL與頁面一起傳遞。您可以使用c#'s Random類在服務器上生成URL。

<a href='@Model.RandomUrl' style="color: black;">A Random URL</a> 

只需傳遞您在視圖中引用的模型即可。

+0

請您詳細解釋一下嗎?我對這個東西有點新鮮。 –

+0

你可能會發現這篇文章很有幫助http://www.codeproject.com/Articles/575397/An-Absolute-Beginners-Tutorial-on-ASP-NET-MVC-for – TGH