如何将在初始页面加载期间创建的 PHP 对象传递给 ajax 调用?
create-page.php
创建我的页面并有一个对象expensiveObject
。我需要传递expensiveObject
给ajax-some-stuff.php
.
选项 1:我是否应该 json_encode() 对象,将其附加到我的 URL,使用 javascript 获取我的 URL 的那部分,然后将其发送回 PHP ajax?
选项 2:我可以将其存储为 $_SESSION 变量吗?
如何将在初始页面加载期间创建的 PHP 对象传递给 ajax 调用?
create-page.php
创建我的页面并有一个对象expensiveObject
。我需要传递expensiveObject
给ajax-some-stuff.php
.
选项 1:我是否应该 json_encode() 对象,将其附加到我的 URL,使用 javascript 获取我的 URL 的那部分,然后将其发送回 PHP ajax?
选项 2:我可以将其存储为 $_SESSION 变量吗?
我会把它保存起来,$_SESSION
因为这会阻止你通过互联网发送数据,这些数据应该只在服务器上处理。会有安全问题以及性能问题。
保存对象时,您可能需要实现__sleep()
并__wakeup()
取决于您的对象$_SESSION
我想使用选项 1,但在 json_encode 函数之后,我将使用 base64_encode 再次包装它,因为 json_encode 仍然不是 URL 安全字符串。
$_SESSION 方法既好又简单,但取决于您的对象。如果我没记错的话,$_SESSION 可以存储最大大小的数据。- 如果您是服务器端会话,您的服务器内存将被消耗 - 使用 cookie 作为会话替换将限制数据大小