ServerStorage
serverStorage(string | variable)
Description
ServerStorage allows you to save string data on the server so it is available next time you run the program. An entry can be created by assigning to serverStorage.setItem(variableName, value), where variableName is chosen by you. Data is retrieved a similar way.
Normally, data is saved in a namespace using the app's id. However, it is possible to set the namespace to the name of another app's id, allowing the two apps to share data.
ServerStorage is insecure: there is currently no protection against other apps reading or changing the data. If two apps are using the same namespace, there is no collision or locking logic: it is possible for one user to erase another user's update.
This feature requires server side software. The AppStudio test server, nsbapp.com, has it. If you want to implement it on your own server, the instructions are here.
To turn on this feature, select ServerStorage on the Toolbox panel in Project Properties:
Properties and Methods
clear() | Clear all entries in the current namespace. |
deleteItem(key) | Deletes item key. |
getItem(key) | Get the item which is saved under key. String. |
key(n) | Get the nth item in the namespace. |
length | The number of items in the current namespace. |
namespace | The group used by all serverStorage methods. Defaults to app ID. |
setItem(key, value) | Sets item key to value. Creates item if it does not exist. |
Example - BASIC
Sub Main() NameSpace.text = serverStorage.namespace End Sub Function Button1_onclick() t=SysInfo(10) For i = 1 To 10 serverStorage.setItem("item" & i, i) Next MsgBox "Write 10 items into serverStorage(secs): " & (SysInfo(10)-t)/1000 End Function Function Button2_onclick() NSB.Print(False) For i=0 To serverStorage.length-1 key = serverStorage.key(i) Print key, serverStorage.getItem(key) Next End Function Function Button3_onclick() serverStorage.clear() End Function
Example - JavaScript
function Main() { NameSpace.text = serverStorage.namespace; } Button1.onclick = function() { t=SysInfo(10); for (i = 1; i <= 10; i ++) { serverStorage.setItem("item" + i, i); } alert("Write 10 items into serverStorage(secs): " + (SysInfo(10)-t)/1000); } Button2.onclick = function() { NSB.Print(False); for (i=0; i <= serverStorage.length-1; i++) { key = serverStorage.key(i); NSB.Print((key+ " " + serverStorage.getItem(key)) + "<br>"); } } Button3.onclick = function() { serverStorage.clear(); }
Output
(see serverStorage sample)