Funny, someone asked almost exactly the same questions 4 days ago.
You can't write to JSON files. Well, it may be possible with some php script running on the server, but this will change the database for all users.
Don't think that saving/loading 30-50K records in local storage will be a problem if you are not doing this too often. And of course, it depends on the data. You can estimate the size of your array/dictionary: len(Array.AsJSON)
If it's less than a couple of megabytes, I guess you should be fine.