有沒有什麼方法可以在客戶端保存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對象,是的。這也取決於你「保存」的意思。如果您從服務器獲取數據,它將存儲在內存中,只要該頁面「存在」,您就可以隨時訪問它。或者你是否要求在頁面加載之間保持存儲? –