簡體   English   中英

使用JavaScript在網頁之間共享數據

[英]Sharing data between web pages with JavaScript

我正在使用Node.js,express,Socket.IO和MongoDB開發GPS /映射應用程序。 跟蹤器頁面使用HTML5地理位置和Socket.IO將坐標發送到服務器並將其存儲到MongoDB中。 我現在正在創建用戶頁面,以便用戶可以查看以前記錄的數據。 我目前沒有登錄頁面,因此index.html只是填充了一個用戶名列表,我可以選擇一個。

我的問題是我不確定如何最好地將數據(例如所選用戶的用戶名)傳遞到下一頁。 我一直在嘗試避免僅通過一個用戶名就打開與服務器的套接字連接,但是如果那是最好的方法,那就沒問題了。 我也知道localStorage是一種選擇。 以下是一些代碼段,可讓您大致了解我的工作:

index.html的:

<html>
<head>
    <script src="http://code.jquery.com/jquery-latest.min.js"></script>
    <script>
        $(document).ready(function() {
            $.ajax({
              dataType: "json",
              url: "/getusers"
            }).done(function(data) {
                console.log("--->", data);
                for(var i=1; i<data.length; i++) {
                    $('#list').append("<li><a href=http://localhost:3000/mapPage.html>" + data[i].name + "</a></li>");
                }
                $("a").click(function(e) {
                    alert("--->", $(this).html());
                    //alert("--->", $(e).html());
                    //alert("--->", $(e).getVal());
                    //window.localStorage.setItem("username", )
                });
            });
        });
    </script>
</head>
<body>
    <ul id='list'>
    </ul>
</body>
</html>

該ajax剛剛到達一條向MongoDB詢問集合名稱的快速路由(每個用戶都有一個集合)。 另外,我也無法從單擊的特定錨標簽中獲取數據。 因此,我需要獲取單擊的用戶名並將其發送到“ userpage”,該用戶名目前與index.html幾乎相同,它將選擇特定的用戶集合並顯示可用對象(數組的數組)。地圖坐標);

tl; dr:從單擊的錨標記中獲取數據,使數據可用於下一頁。

這正是sessionStorage設計的目的-將數據從一頁傳遞到另一頁。 localStorage也可以用於此目的,但更多用於會話之間某些數據的持久性。

如果您必須在頁面之間傳遞這樣的數據,我想到的最簡單的方法就是將其作為查詢字符串傳遞。

http://localhost:3000/userPage.html?username=jim&user=jdawg149

然后,您可以將它們讀出到目標頁面上的變量中。

您可以通過一些簡單的方法在window上獲取和設置查詢字符串,如下所示:

http://css-tricks.com/snippets/javascript/get-url-and-url-parts-in-javascript/

您還可以通過使用帶有RegEx的函數來解析URL,從而使其更加復雜,如此處所示:

如何獲取JavaScript中的查詢字符串值?

請記住,您應該將URL限制為〜2000個字符。

暫無
暫無

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

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