I know it's frustrating, it's a lot to do with browsers obviously having security restrictions. However, it can be made better, and I hope to improve it soon - and there's a Filesystem API in the works for HTML5 which should solve this completely. (If I understand right Filesystem basically gives the browser access to a virtual folder on your computer, so you can read/write files to disk as you please with a much higher storage limit. I haven't had much time to check it out though.) However support is patchy, especially with writing files, which right now appears to only be supported in Chrome.
Obviously in CC the work flow is nice and simple: load a file direct from disk, and save direct back to disk.
From Construct 2, there's the added problem of the preview server. This is another thing I want to improve, but currently it only serves a list of files known in advance to be part of the Construct 2 engine. So unfortunately currently there's no way to add an external file to your project, and AJAX it from the preview server. This is on my todo list and should make it a little bit better.
In C2 the ultimate process I imagine is:
1. You create a level editor, storing to (for example) the Array object.
2. You design a few levels, and download each of them to disk using the 'Download' action. (Hopefully this can be made to work smoother, with just one click - the file saver plugin looked like it used an interesting library which might help.)
3. You add the downloaded files to your project. They appear in the Project Bar under a 'Files' folder.
4. These files are exported with your project, and are also served up by the preview server.
5. This means you can test your project in preview using the AJAX object. For example, AJAX request "level3.json", and when it completes, load it in to the Array object then load the level.
6. It also means on export all your levels are stored as separate files. Bonus: when published, the game does not need to download all levels before it starts running. You can dynamically load levels with AJAX during the game.
7. If smartly designed, you could add new levels to your game by simply uploading more .json level files.
Obviously this is not all possible yet, but it's the goal I'm aiming for. I think it's a good strategy because it circumvents the browser storage completely - you just download and upload files as ordinary files on disk. That sidesteps all quota limitations and avoids patchy browser support. It has the added benefit it's highly visible which files you're dealing with. If you save a bunch of files to the browser in preview with WebStorage or some File Writer, how do you get them back? Unless you write special code to download them, it's not easy to know where the browser has put that data. If you download it to disk though, you always know where everything is. It gets stored with your project, so it will be copied, backed up etc. along with the project, whereas data saved in the browser is easily lost if you switch browser or change computer.
It's kind of low-tech compared to using the fancy new APIs, but I think it will work better in practice.
So what do you think of that? Do you think it will solve everything or is it missing something still?