I'd have to agree with most of what you wrote, although I still think you
can get around most of the problems (except double-clicking) with a stern
warning -- perhaps an interstitial page -- that provides an estimate of
how long the process will take; those estimates may not be trivial to come
up with, but I think the cost of creating the estimates needs to be
compared to the cost of "waste."

Regarding double-clicking, the most effective solution I've seen to this
is to generate a request ID embedded in the request page, so that when you
accept the request, you compare the request ID to the available results,
and return the result, if available.  If not, you can wait until it is
available.  The first process doesn't have to be stopped, and the second
would just be waiting for the first to complete; this only wastes a
thread, but it may be cheaper than reengineering ns_conn.

I really do get that there are times when it would be "nice" to halt
processing that no one will listen to, but I think it will be more
expensive to implement this feature than to engineer the UI to minimize
the number of times that happens.  But that's just my opinion.

Reply via email to