One trick you can do is to make sure your query's where clause is always unique. A common technique to return all features (and it is what it is) is to set the where clause to "1=1". However, you could substitute any number into that. To guarantee a unique number every time, which would defeat the browser's cache, you could use something like Date.now() every time.
For example, if your Query object had no where value, you'd put:
var now = Date.now().toString();
query.where = now + "=" + now;
Otherwise, if your Query already had a where value, you'd put:
var now = Date.now().toString();
query.where = "(" + query.where + ") AND " + now + "=" + now;