PHP/JS -如何移动数组到另一个页面不使用URL, FORM, SESSION, COOKIE参数


PHP/JS - How to move array to another page not using URL, FORM, SESSION, COOKIE params

我在动态跟踪用户浏览网页的方式。最后5个访问过的页面显示为Breadcrumb导航,如下所示:

DogDatabase>> DogName>> UserName>> KennelName>> DogName>> etc....

其动态生成的访问页面路径…这个脚本是用PHP编写的,它工作得很好。

现在我正在使用SESSIONs将访问过的页面数组移动到另一个页面。在JS中也尝试了LocalStorage。

我的问题是,如果用户有更多的窗口我的网页。该数组为我的web的所有实例(windows)共享1个用户。

所以它看起来像这样:

w1 - widnow 1

w2 -窗口2

w1。DogDatabase>> w1。狗名>> w2。UserName>> w1。KennelName>> w2。DogName

但我想要这样:

w1。DogDatabase>> w1。DogName>> w1。KennelName

w2。UserName>> w2。DogName

我的问题是:如何将访问过的页面数组移动到另一个页面,以特定于我的web的1个用户在PHP或JS的每个窗口?

谢谢你,安德鲁。

EDIT - !:

所以我已经完成了面包屑导航:)

我有这样的多维数组:

array (
[0] : (nameOfPage,pageURL)
[1] : (nameOfPage,pageURL)
etc..
)

我使用sessionStorage来获取这个数组到另一个页面。很棒的是,sessionStorage对于web的每个窗口/选项卡都是唯一的,所以我不需要识别窗口/选项卡。当窗口/选项卡关闭时,将清除存储空间。下一个很好的特性是,当用户单击BACK按钮时,sessionStorage将返回到该页上的历史值。当页面通过关闭面板功能从浏览器重新打开时,sharedStorage也是当前值。

保存数组到sessionStorage:

sessionStorage.setItem(key, JSON.stringify(myarray));

从sessionStorage中读取数组:

var myarray = JSON.parse(sessionStorage.getItem(key));

变量键是名称:

var key = 'navigation';

sessionStorage将是最好的解决方案,我建议您使用像这样的会话存储管理库。它不仅可以帮助您存储简单的文本/数字数据,还可以存储像这样的整个数组。

$.setSession('key','value');
$.setSession('array1',[1,2,3,4,5]);
$.setSession('array2',Array(1,2,3,4,5));
要获取这些数据,你只需要使用getSession函数
$.getSession('key'); // returns 'value'
$.getSession('array1'); // returns [1,2,3,4,5]

谢谢你的小费,Adam。这不是确切的解决方案,但这是正确的方法。

我将使用sessionStorage代替localStorage。SessionStorage为每个窗口/选项卡分开,并在窗口/选项卡关闭时清除。

所以我不需要检测窗口(不需要生成窗口/标签的id),也不需要关心清除存储。LocalStorage为所有窗口/选项卡共享,需要手动清除(关闭浏览器并没有清除LocalStorage)。