There's a 3-way sync among URL parameters, form values, and localStorage. Rationale:
-
Everything I change in a form should be remembered and restored.
-
Everything I change in a form should also be reflected into the URL so I can share the view I've constructed with another person, and/or so that I can enable a bot/app to link into that view.
Suppose I navigate to a view that has several non-default params, say max:200, tag:postgres. Now I send you that URL. You have previously navigated to any:sebastopol. Your view will combine these and yield (probably) no results.
So perhaps the rule should be: if non-default params come in on the URL, ignore all local non-default params.
There's a 3-way sync among URL parameters, form values, and localStorage. Rationale:
Everything I change in a form should be remembered and restored.
Everything I change in a form should also be reflected into the URL so I can share the view I've constructed with another person, and/or so that I can enable a bot/app to link into that view.
Suppose I navigate to a view that has several non-default params, say max:200, tag:postgres. Now I send you that URL. You have previously navigated to any:sebastopol. Your view will combine these and yield (probably) no results.
So perhaps the rule should be: if non-default params come in on the URL, ignore all local non-default params.