如何在多个网页中携带唯一标识符



我创建了一个简单的网站供自己使用,它由3个静态页面组成。每个页面都从数据库(解析服务器(加载一些数据,使我能够查看或操作所述数据。这非常有效,但现在我想将其扩展为基于标识符(dataid(选择特定数据。

假设我转到一个登录页,然后按名称选择(例如从下拉列表中(数据集,我想查看/编辑该数据集,它给出了dataid,我如何在我拥有的3个页面中的任何一个页面中使用该dataid

我曾考虑过使用localStorage,但这对于给定的域/端口来说是常见的,我可能希望打开多个选项卡,每个选项卡显示不同的数据集(不同的dataid(。

我认为sessionStorage也不是正确的解决方案,因为它只在每个选项卡上持续存在,并且我希望能够打开与同一dataid相关的多个选项卡。

我认为它可能与查询字符串有关,但我不确定如何在所有页面中使用它。例如,假设用户从登录页选择dataid='dataset1',登录页打开main.html?dataset1。但是,如果main.html包含指向edit.html的链接,我将如何使其打开edit.html?dataset1?我看到过一些解决方案,其中使用jQuery/javascript修改页面上的所有链接以附加查询字符串;但这更像是一种变通方法。

我知道这在整个网络上都在使用,但不确定他们是如何实现的。例如,我确信我见过这样的东西:

somedomain.com/{dataid}/main.html
somedomain.com/{dataid}/edit.html

这感觉就像我在寻找的,意味着我有一个用户友好的url到给定的数据集。这是某种服务器端处理吗?如果是,这里使用的是什么技术?

如果服务器端解决方案是"正确"的方法,我会感兴趣,短期内,我会对客户端解决方案感兴趣(因为我目前使用新保守主义来服务我的静态页面(。

要求澄清:

  1. 对于给定的浏览器选项卡,可以加载具有特定dataid的3个页面中的任何一个
  2. 可以打开多个选项卡,每个选项卡都使用自己的dataid
  3. 任何链接的页面都应继续使用当前的dataid。例如,如果main.html链接到edit.html,那么如果用户点击edit.html的链接(在当前选项卡或新选项卡中打开(,那么edit.html应该继续使用相同的dataid
  4. 能够直接链接到给定的dataid,例如main.html?dataset1或类似内容(如果在继续之前需要添加JS来提取dataid,则可以(

我的一个想法是,也许其中一些可能更容易/只有一个网页应用程序才能实现??

jquery:中的

function Navpage(){
windows.location("pagename.aspx?Id="+Id);
}

//Id必须是您在ajax调用下传入的data:({quot;Id":Id}(。这个函数应该在单击按钮时执行。

最新更新