JSON file versioning - json

I am using a json file to load some delivery address in my project.This file is getting updated by the client for several time.But whenever I put the new json file to my project location, it takes too many refresh to reflect the newly added address on the browser even sometime I need to clear the browser cache to reflect properly.
I am using Asp.Net MVC4 .Could I control the version of this JSON file using bundle and minification property so that it gets reflected whenever any change will be made?
Or without using bundling,is there any another process so that it can reflects easily with a single refreash.

I found that the following code fragment worked best for me. Since it uses 'require' to load the package.json, it works regardless the current working directory.
var pjson = require('./package.json');
console.log(pjson.version);

Related

How do I manage updating "static" data in an Angular app without rebuilding the entire app again?

I have an Angular app where I am loading some static data from a file under assets.
urlDataFile = './assets/data.json';
data: any = null;
constructor(
private _http: HttpClient
) {
this.loadData().subscribe((res) => {
this.data = res;
});
}
private loadData() {
return this._http.get(this.urlDataFile);
}
This works absolutely fine for me for truly static data.
When I build my app for distribution, the data gets packaged into the app.
However, once deployed, I want to be able to publish an updated data file - just (manually) updating a single file into the deployment location.
In an ideal world, I would like to develop with a dummy or sample data file (to be held in source control etc.), to exclude that file from deployment, and once deployed, to push a new data file into the deployed app.
What is the standard convention for accomplishing this?
What you have there should work just fine?
There's two ways of doing JSON stuff; one is as you're doing and dynamically request the file, the other is to literally import dataJson from './assets/data.json' in your file directly.
The second option, I was surprised to find out, actually gets compiled into your code so that the json values are literally part of your, e.g. main.js, app files.
So, yours is good for not being a part of your app, it will request that file on every app load (or whenever you tell it to).
Means it will load your local debug file because that's what it's got, and then the prod file when deployed; it's just requesting a file, after all.
What I foresee you needing to contend with is two things:
Live updates
Unless your app keeps requesting the file periodically, it won't magically get new data from any new file that you push. Until/unless someone F5's or freshly browses to the site, you otherwise won't get that new data.
Caching
Even if you occasionally check that file for new data, you need to handle the fact browsers try to be nice and cache files for you to make things quicker. I guess this would be handled with various cache headers and things that I know exist but have never had to touch in detail myself.
Otherwise, the browser will just return the old, cached data.json instead of actually going and retrieving the new one.
After that, though, I can't see anything wrong with doing what you're doing.
Slap your file request in an interval and put no-cache headers on the file itself and... good enough, probably?
You are already following the right convention, which is to call the data with the HTTP client, not importing the file.
Now you can just gitignore the file, and replace it in a deployment step or whatever suits you.
Just watch for caching. You might want to add a dummy query string with some value based on a time or something to ensure the server sends a new file, based on how often you might update this file.

File not found when run project from browser

I write a function to read data from excel file, then generate whole datas to JSON. When i test running as application, it works well. But when i call that function into Servlet class and using browser to run it, the file not found exception come. I put the excel file to root folder of my project and URI is the same. Is there any one have ever had same issue with me? and know how to fix it? Thank.

Autodesk viewer offline - http-server communication to load and save files

We run the offline viewer using the http-server command, how can we make it load more files other than the bubbles and to be able to send strings back to it to save as files on the file system?
Do we have to write a modified http-server for that? if so can we have some direction on how?
The Viewer is read-only, nothing is saved or changed on the model after the translation.
It's possible to get the current state, like zoom, perspective or position via Autodesk.Viewing.Viewer3D methods: getState() and restoreState(), but the state is not actually saved by default, you'll need to implement a JavaScript that communicate with your backend to POST and GET this information. This sample extends this state.
Another sample extend this to save changes on model back to server that comunicate to the original file. Again, everything is custom implemented.
In any case you'll need a back-end that store the changes and a JavaScript that read and restore it.

Cache invalidation using Webpack

I am appending hash ids to bundles generated by webpack. Whenever I get a new build I see that filenames are changed with new hash and index.html file is referencing these files. But after deploying my app, some users using Chrome don't see the new files until they logout from the app. Does anyone encounter this before, know any solution to fix it?

How to store variables on local HTML file?

Recently I've found that I can use pure HTML, CSS and JS to build Android app (and iOS also maybe), by using PhoneGap. I guess it converts HTML pages to Android web views. So basically I'll have ~10 HTML files, calling each other, get data from Server (it's Java and Tomcat) via Ajax and JSONP.
And my problem is about storing user data with these static local HTML files.
As they are local files, I can't use Cookie. But somehow Session's still working, so with each HTML page, I can set an onload event that sends an Ajax request, then get data. But it's very inconvenient, I have to do that for the same data each time I switch to another HTML file. So, is there any solution I can load all data when the first HTML file is loaded, store data somewhere, then reuse these data in others HTML files ? Thank you so much for reading my question.