繁体   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