簡體   English   中英

多次使用同一鏈接的最佳實踐是什么?

[英]What is the best practice for the multiple use of the same link?

我正在嘗試合理化一個網站,並且在該網站上有許多指向同一文檔的鏈接,因此我想創建一個返回該文檔URL的JavaScript。 這樣,我可以更新文檔,而僅需更改函數中的URL,而不必更改所有鏈接中的URL(這是一個專業的內部網站,帶有許多指向官方文檔的鏈接,這些鏈接經常會更新,控制,每次我更新鏈接時,我意識到一段時間之后,即使通過搜索所有html文件,我也忘記了一些。該站點很亂,很多人寫的不好,這就是為什么我要簡化)

我的第一個想法是使用<A href="javascript:F_link_pdf()">link</A> ,但是每個人都說這是一種不好的做法。 我仍然不明白為什么,而且我不喜歡使用onclick因為它不適用於中鍵點擊,我想讓用戶決定如何打開文檔。

另外,我想使用<A href="javascript:F_link_pdf()#page=39">link</A>重定向到特定頁面。

最重要的是,到目前為止,我嘗試的工作並沒有達到我的預期效果,因此我需要一些幫助,無論是想出一個更好的解決方案,還是要使其工作!

這是我的js,具有不同的版本:

function F_link_PDF() {
    // i was pretty sure this would work
    return "http://www.example.com/presentation.pdf" ;
}
function F_link_PDF_2() {
    document.write("http://www.example.com/presentation.pdf");
}
function F_link_PDF_3() {
    // i don't like this solution, as it doesn't open as user intended to
    location.href = "http://www.example.com/presentation.pdf" ;
}

這個例子是用於pdf文檔的,但是我也可能需要html,doc,ppt ...,最后,我從js開始,因為我很習慣,但是我也可以使用其他語言,例如php,asp,有人說這是一個更好的選擇

提前致謝!

破解方式:開始使用JavaScript,但是瀏覽器未運行時會遇到潛在問題。

更好的方法:使用mod_rewrite / .htaccess將先前(過期)的請求重定向到資源的新位置。 您還可以使用FallbackResource並提供一個.php文件,該文件可以根據條件提供新資源(您現在可以使用PHP來決定Location標頭應放在何處)。

最佳方法1 :將那些文檔引用放在數據庫表中的某個位置,然后使用表的當前值在頁面中引用它們。 這將創建一個“真實”的位置,並允許您從全局角度更新站點。 您也可以在以后提供搜索,標記,顯示列表等。

1 並不意味着這絕對是最好的,但肯定比更新硬編碼的引用更好。

像php這樣的服務器端編程語言是更好的選擇。

以下示例代碼可以幫助您:

<?php
$link="http://www.example.com/files/document.pdf";
if ($_GET['PAGE'] == "downloads")
    {
      ?>
      This is a download page where you can download our flyer.
      <?php
      echo "<a href=\"".$link."\">Download PDF</a>";
    }

if ($_GET['PAGE'] == "specials")
    {
      ?>
      This is our store specials page. check them out. a link to the flyer is below.
      <?php
      echo "<a href=\"".$link."\">Download PDF</a>";
    }
?>

該代碼不是100%完美的,因為某些文本需要調整,但是它的工作是使用參數PAGE並看到它是“下載”或“特殊”,如果是,它將加載適當的頁面並將鏈接添加到下載文件。 如果您同時嘗試兩個頁面,則下載鏈接完全相同。

如果上述php腳本另存為index.php,則可以使用以下命令調用每個頁面:

index.php?PAGE=specials   for the specials page
index.php?PAGE=downloads  for the download page

一旦可行,您就可以為另一個頁面添加另一個“ if”部分來創建,但是每個部分中最重要的一行是...的最后一行。

echo "<a href=\"".$link."\">Download PDF</a>";

...因為它采用的變量在腳本中的每種情況下都可用。

使用服務器端方法的一個優點是,即使禁用了javascript,人們也可以查看站點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM