有没有什么方法可以在客户端保存php对象,所以当我进一步需要它时,我不需要发出Ajax请求来获得另一个新对象。在客户端保存php对象
回答
是 - 使用HTML5localStorage
键保存任何你需要的数据:保存到浏览器的本地存储
localStorage["hi"] = "ho";
// and then later ...
alert(localStorage["hi"]);
字符串将持续存在,当用户导航到一个新的网站上的网页,或者返回您的网站稍后。它的浏览器支持非常好 - 即使IE8 +也支持它。
一个注意:你只能保存字符串数据。所以,如果你有一个对象,那么你就需要使用JSON.stringify/JSON.parse:
var user = { firstName: "foo", lastName: "bar" };
localStorage["name"] = JSON.stringify(user);
// and then later ...
var restoredUser = JSON.parse(localStorage["name"]);
if (restoredUser)
alert("Hi, " + restoredUser.firstName);
可以使用对象serialization/deserazlization
这里storing php objects on html form element and passing php objects through GET method?
serialize
对象和加密解释上客户端去- 然后当客户端请求发送输出XML字符串返回可以解密XML字符串,并通过使用
deserialization
关于加密看到这样一个Simplest two-way encryption using PHP
而且也是上面所说的,你可以使用HTML 5客户端本地存储,但这种可能不会被默认在旧的浏览器看到工作localStorage supported browsers
而且又把它真的取决于什么你确实想要达到什么样的数据你想存储,在某些情况下,你可以简单地使用服务器缓存,所以在这种情况下,你根本不需要在客户端存储整个对象。
当然,你肯定可以在客户端存储一个PHP对象。夏娃的对象,其中包含引用对象,数组成员变量...
但不要相信任何从客户端回来,你 之前转发给客户端!
攻击者可以很容易地更改或替换客户端的序列化对象。因此,这是极其危险的在客户端存储服务器端对象。
这就是说,这里是如何存储PHP对象在客户端
首先,连载对象:
$serializedObject = serialize($someObject);
接下来,节约使用local storage的对象客户端(base64_encode()隐藏引号):
<script type="text/javascript">
localStorage["soAccessor"]
= "<?php echo base64_encode($serializedObject); ?>";
</script>
最后,您可以使用例如PHP将其传递回PHP端。一种形式的隐藏领域。
如果需要反序列化返回到原始对象状态的东西,请使用deserialize()。请注意,在进行反序列化操作之前,您需要对每个对象的类定义require_once()
。
在反序列化期间,PHP尝试对__wakeup()
序列化对象。如果班级没有有序定义,这将不会正确发生。
- 1. 在客户端保存用户偏好
- 2. 保存画布客户端
- 3. 客户端/服务器模式来保存本地对象?
- 4. 前端客户端的用户对象
- 5. 保存字符串与打开客户端/保存对话框
- 6. 即使使用令牌,如何在客户端保存客户对象中的条纹客户卡信息?
- 7. Node.js:在客户端处理JSON对象
- 8. 保存对象与欺骗分布式缓存客户端的memcached
- 9. 从Sharepoint客户端获取weburl客户端对象模型
- 10. 从客户端到客户端的同步对象比例
- 11. 使用保存文件对话框中Asp.net直接保存在客户端PC
- 12. 如何使用Java客户端在Riak中存储对象?
- 13. WCF客户端,是否保存引用?
- 14. 保存客户端html更改
- 15. 在php对象中保存内存
- 16. 有没有办法通过PHP保存“客户端ID”?
- 17. PHP SOAP客户端
- 18. PHP/FTP客户端
- 19. PHP REST客户端
- 20. 保持客户端对象模型连接打开
- 21. “另存为”在客户端
- 22. 在IE中“另存为”按钮,在客户端保存文件
- 23. 存储一个PHP数组客户端
- 24. BreezeJS:服务器添加的对象显示为保存更改后在客户端添加的对象
- 25. asp.net控件的客户端对象
- 26. Flex共享对象显示客户端
- 27. 使用客户端对象模型
- 28. 丰富的客户端对象管理
- 29. 为REST生成客户端对象
- 30. Breeze JS客户端与动态对象
调查[localStorage](http://www.html5rocks.com/en/features/storage) –
PHP对象,没有。与PHP对象相对应的JavaScript对象,是的。这也取决于你“保存”的意思。如果您从服务器获取数据,它将存储在内存中,只要该页面“存在”,您就可以随时访问它。或者你是否要求在页面加载之间保持存储? –