我有一个显示课程列表的HTML页面(script_1.js
)。这些课程是通过AJAX调用从数据库加载到数组" courses"在course.html
中定义为全局变量。一旦我转到script_2.js
中特定课程的页面,我希望能够将此数组传递给myFunction
以保持课程的顺序并导航它们,而无需再次执行AJAX调用。
我如何传递这个全局变量或如何管理它?
答案 0 :(得分:2)
解决这个问题的方法是使用cookies。
对先前堆栈溢出问题的回答非常好地解释了如何在cookie中存储javascript对象以及如何检索它们。
答案 1 :(得分:2)
您可以使用以下选项将数据从一个页面传递到下一个页面:
Cookie。在第1页的Cookie中存储一些数据。当page2加载时,它可以从cookie中读取值。
本地存储。在第1页的本地存储中存储一些数据。当page2加载时,它可以从本地存储中读取值。
服务器存储。在第1页上代表user1在服务器上存储一些数据。当page2加载时,服务器可以将user1数据放在page2或page2上,可以通过ajax从服务器请求该数据。
查询参数。当从page1加载page2时,可以在http://www.example.com/page2?arg=foo中将查询参数放在URL上,而page2可以从URL解析该查询参数它加载。
公共父框架。如果您的网页是由一个共同的来源框架而您没有更改顶级网址,而只是更改框架网址,那么您可以将全局数据存储在顶级父级,即使从第1页到第2页,也可以从框架页面访问该数据。
您经常可以将JSON用作基于字符串的存储格式,以用于更复杂的数据项(如数组)。 JSON可以放入上述任何存储选项中。
答案 2 :(得分:1)
您有几个选择:
1)如果您正在开发单页应用程序(SPA):创建一个全局变量来存储您的课程,例如: window.courses = []; //填写您的数据课程
然后当您加载页面2时,您可以访问window.courses变量
(请记住,您可以创建一个对象应用并在其中存储您需要的所有变量:window.app = {}; window.app.courses = [])
2)它对SPA或经典Web应用程序很有用:在localStorage上保存课程,您可以存储课程并在下一页中检索(如果未定义localStorage.getItem('courses'),则下载)。