ReadFile (filename[,method[, callBack]])
Note: This function can be replaced by the Ajax() function.
ReadFile will read filename which can either be deployed with the app or be on the same server as the app. If the file is to be deployed with the app, include it in the manifest. This function will only work when deployed to a website: it will not work when deployed to a local folder.
Use method to define the access method. Usually this parameter can be left out: the default is Get. The next most common value for this is Post. Post responses are never cached, whereas Get responses can be. Post also allows larger data transfers. Other methods are Connect, Delete, Head, Options, Put, Trace, or Track. For more information on these options, look up XMLHttpRequest on the web. The function is based on XMLHttpRequest. See the ReadFile.nsx sample in Samples folder 7 "Ajax and ReadFile".
If you supply a callBack argument, a function with that name will be called when the read is complete. Adding this option will cause the operation to become asynchronous. The next statement after ReadFile will be executed immediately, before the read is complete. This results in smoother operation for the user, especially if the file is on a remote server.
If you do not use a callBack, you will see a warning in the Chrome Debugger:
Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check http://xhr.spec.whatwg.org/.
It returns two values: .status = 0 or 200 if the file was read successfully and .responseText which has the entire contents of the file. If the file is not read successfully, a different status code is returned in .status.
Returning the latest file contents
You can also pass a file location to ReadFile using this approach
Dim usrFile, req usrFile = "users/12345.xml?" & SysInfo(10) req = ReadFile(usrFile)
?" & SysInfo(10) at the end of the .xml ensures that the latest file on the server is returned. This is useful where you perhaps update the file and want to return the latest version later on within your application. Excluding this will only return the last cached file contents that you read.
Rem ReadfileFile example filename="g.txt" req=ReadFile(filename) If req.status=200 Then MsgBox req.responseText Else MsgBox "File could not be read" End If