473,395 Members | 1,637 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,395 software developers and data experts.

Can I cancel a running server page from the browser?

I have a server page that has served an HTML page with a "Cancel" button on
it, BUT this server page has not completed and is running a 15-30 second
process before it completes. I want the browser user to be able to
terminate the page before the server process has finished. What I tried was
an onClick event that issued a "location.href..." in hopes that this would
load this referenced page, etc. but I have found that the browser waits
until the server process had compled before executing the "location.href".
Is there some way that I can "signal" the server to stop processing so that
I can go to the "location.href" page; or is there some other way?

TIA,

Larry Woods
Jul 19 '05 #1
17 3234
"Larry Woods" wrote:

I have a server page that has served an HTML page with a "Cancel"
button on it, BUT this server page has not completed and is running
a 15-30 second process before it completes. I want the browser user
to be able to terminate the page before the server process has
finished...
...Is there some way that I can "signal" the server to stop
processing so that I can go to the "location.href" page; or is there
some other way?


You cannot directly cancel the request. The best you can do is have the ASP
process constantly monitor some independent entity (a session variable or a
record in a DB, for example), continuing only if some prearranged condition
is met. The cancel request would still be independent of the original
request, but this should be possible in principle.
--
Dave Anderson

Unsolicited commercial email will be read at a cost of $500 per message. Use
of this email address implies consent to these terms. Please do not contact
me directly or ask me to contact you directly for assistance. If your
question is worth asking, it's worth posting.


Jul 19 '05 #2
Thanks, Dave.

What would be the best way to set a Session variable for the browser? A
popup window ( 0 x 0 )?

TIA,

Larry

"Dave Anderson" <GT**********@spammotel.com> wrote in message
news:Or**************@TK2MSFTNGP10.phx.gbl...
"Larry Woods" wrote:

I have a server page that has served an HTML page with a "Cancel"
button on it, BUT this server page has not completed and is running
a 15-30 second process before it completes. I want the browser user
to be able to terminate the page before the server process has
finished...
...Is there some way that I can "signal" the server to stop
processing so that I can go to the "location.href" page; or is there
some other way?
You cannot directly cancel the request. The best you can do is have the

ASP process constantly monitor some independent entity (a session variable or a record in a DB, for example), continuing only if some prearranged condition is met. The cancel request would still be independent of the original
request, but this should be possible in principle.
--
Dave Anderson

Unsolicited commercial email will be read at a cost of $500 per message. Use of this email address implies consent to these terms. Please do not contact me directly or ask me to contact you directly for assistance. If your
question is worth asking, it's worth posting.

Jul 19 '05 #3
Use a hidden frame.
http://www.aspfaq.com/2001
http://www.aspfaq.com/2281
"Larry Woods" <la***@lwoods.com> wrote in message
news:OD**************@TK2MSFTNGP12.phx.gbl...
Thanks, Dave.

What would be the best way to set a Session variable for the browser? A
popup window ( 0 x 0 )?

TIA,

Larry

"Dave Anderson" <GT**********@spammotel.com> wrote in message
news:Or**************@TK2MSFTNGP10.phx.gbl...
"Larry Woods" wrote:

I have a server page that has served an HTML page with a "Cancel"
button on it, BUT this server page has not completed and is running
a 15-30 second process before it completes. I want the browser user
to be able to terminate the page before the server process has
finished...
...Is there some way that I can "signal" the server to stop
processing so that I can go to the "location.href" page; or is there
some other way?
You cannot directly cancel the request. The best you can do is have the

ASP
process constantly monitor some independent entity (a session variable

or a
record in a DB, for example), continuing only if some prearranged

condition
is met. The cancel request would still be independent of the original
request, but this should be possible in principle.
--
Dave Anderson

Unsolicited commercial email will be read at a cost of $500 per message.

Use
of this email address implies consent to these terms. Please do not

contact
me directly or ask me to contact you directly for assistance. If your
question is worth asking, it's worth posting.


Jul 19 '05 #4
Larry Woods wrote:

I have a server page that has served an HTML page with a "Cancel" button on
it, BUT this server page has not completed and is running a 15-30 second
process before it completes.
Long-running processes are not good for web servers. You should write
this application a different way. See
http://www.google.com/groups?hl=en&l...40TK2MSFTNGP09
for a better way.
I want the browser user to be able to
terminate the page before the server process has finished.


Educate the user about the browser's "Stop" button. Alternatively the
user can click on another URL, select a bookmark, or enter a new URL.
When the Stop button is pressed, the TCP connection is reset and the
connection closed between client browser and server. Any queued output
will be discarded by whichever party (client, server or proxy agent) is
holding it.

Good Luck,
Michael D. Kersey
Jul 19 '05 #5
The application is searching the Web using a second server; i.e., the ASP
server XMLHTTPs to a second server which is performing the searches.
USUALLY the second server responds in a fairly short time, but once in a
while it will be quite a while. It is possible that the user will want to
"bail out". Within the ASP server, I can abort the XMLHTTP session with the
second server if I know that I am to do it. We have implemented some
safeguards such as having the second server time out, and also having the
ASP server monitor the situation but there is STILL the possibility that the
user wants to terminate the "Please Wait" page.

Larry

"Dave Anderson" <GT**********@spammotel.com> wrote in message
news:%2****************@TK2MSFTNGP12.phx.gbl...
"Larry Woods" wrote:

What would be the best way to set a Session variable for the
browser? A popup window ( 0 x 0 )?
I should clarify my comments. Although I outlined a possible solution, it

is not one I recommend. You would be best served by designing processes that do not need to be interrupted, as this other technique could be far more
demanding on resources than you anticipate.

What are you trying to accomplish, and why do you need to stop a process
once it is underway?
--
Dave Anderson

Unsolicited commercial email will be read at a cost of $500 per message. Use of this email address implies consent to these terms. Please do not contact me directly or ask me to contact you directly for assistance. If your
question is worth asking, it's worth posting.

Jul 19 '05 #6
That is a good idea, Aaron, but this solution is "IE only" and even though I
wish that I could depend on that this site is a public site so I can't
assume IE. Any other suggestions?

TIA,

Larry

"Aaron Bertrand - MVP" <aa***@TRASHaspfaq.com> wrote in message
news:eE**************@TK2MSFTNGP10.phx.gbl...
Use a hidden frame.
http://www.aspfaq.com/2001
http://www.aspfaq.com/2281
"Larry Woods" <la***@lwoods.com> wrote in message
news:OD**************@TK2MSFTNGP12.phx.gbl...
Thanks, Dave.

What would be the best way to set a Session variable for the browser? A
popup window ( 0 x 0 )?

TIA,

Larry

"Dave Anderson" <GT**********@spammotel.com> wrote in message
news:Or**************@TK2MSFTNGP10.phx.gbl...
"Larry Woods" wrote:
>
> I have a server page that has served an HTML page with a "Cancel"
> button on it, BUT this server page has not completed and is running
> a 15-30 second process before it completes. I want the browser user
> to be able to terminate the page before the server process has
> finished...
> ...Is there some way that I can "signal" the server to stop
> processing so that I can go to the "location.href" page; or is there
> some other way?

You cannot directly cancel the request. The best you can do is have
the ASP
process constantly monitor some independent entity (a session variable or
a
record in a DB, for example), continuing only if some prearranged

condition
is met. The cancel request would still be independent of the original
request, but this should be possible in principle.
--
Dave Anderson

Unsolicited commercial email will be read at a cost of $500 per

message. Use
of this email address implies consent to these terms. Please do not

contact
me directly or ask me to contact you directly for assistance. If your
question is worth asking, it's worth posting.



Jul 19 '05 #7
I'll look into the Google suggestion.

I want the user to terminate the page, but not the present session. In
another response to my question I have explained my application. The delay
is a possible looooong Web search by the server.

TIA,

Larry

"Michael D. Kersey" <md******@hal-pc.org> wrote in message
news:3F***************@hal-pc.org...
Larry Woods wrote:

I have a server page that has served an HTML page with a "Cancel" button on it, BUT this server page has not completed and is running a 15-30 second
process before it completes.
Long-running processes are not good for web servers. You should write
this application a different way. See

http://www.google.com/groups?hl=en&l...40TK2MSFTNGP09 for a better way.
I want the browser user to be able to
terminate the page before the server process has finished.


Educate the user about the browser's "Stop" button. Alternatively the
user can click on another URL, select a bookmark, or enter a new URL.
When the Stop button is pressed, the TCP connection is reset and the
connection closed between client browser and server. Any queued output
will be discarded by whichever party (client, server or proxy agent) is
holding it.

Good Luck,
Michael D. Kersey

Jul 19 '05 #8
Well, you can use xmlhttp to run a second server-side page that sets a
session cancel variable to true can't you?

Bob

Larry Woods wrote:
The application is searching the Web using a second server; i.e., the
ASP server XMLHTTPs to a second server which is performing the
searches. USUALLY the second server responds in a fairly short time,
but once in a while it will be quite a while. It is possible that
the user will want to "bail out". Within the ASP server, I can abort
the XMLHTTP session with the second server if I know that I am to do
it. We have implemented some safeguards such as having the second
server time out, and also having the ASP server monitor the situation
but there is STILL the possibility that the user wants to terminate
the "Please Wait" page.

Larry

"Dave Anderson" <GT**********@spammotel.com> wrote in message
news:%2****************@TK2MSFTNGP12.phx.gbl...
"Larry Woods" wrote:

What would be the best way to set a Session variable for the
browser? A popup window ( 0 x 0 )?


I should clarify my comments. Although I outlined a possible
solution, it is not one I recommend. You would be best served by
designing processes that do not need to be interrupted, as this
other technique could be far more demanding on resources than you
anticipate.

What are you trying to accomplish, and why do you need to stop a
process once it is underway?
--
Dave Anderson

Unsolicited commercial email will be read at a cost of $500 per
message. Use of this email address implies consent to these terms.
Please do not contact me directly or ask me to contact you directly
for assistance. If your question is worth asking, it's worth posting.

Jul 19 '05 #9
> That is a good idea, Aaron, but this solution is "IE only"

What? You can't use a hidden frame like this, in other browsers:

<frameset rows="99%, 1%">
<frame ...
<frame ...
</frameset>

???
Jul 19 '05 #10
> It is possible that the user will want to "bail out".

And such a user would use the STOP button, why are you trying to invent your
own methodology to replace it?
Jul 19 '05 #11
Larry Woods wrote:

I'll look into the Google suggestion.

I want the user to terminate the page, but not the present session. Clicking on the Stop button resets the HTTP connection; it does not
affect the current session.
In another response to my question I have explained my application. The delay
is a possible looooong Web search by the server.

Consider doing the XMLHTTP fetches in a background task or program and
not by an ASP page if they require more than a few seconds of
processing. Otherwise your own web server's memory and CPU will be tied
up waiting.

A periodic VBScript batch run or a VB program can do the XMLHTTP
searches and won't bog down your web server. Users' experiences will be
better since they are free to do other browsing while waiting for the
XMLHTTP searches to complete: users could check results hours or days
later. When your web server goes down, requests are not lost. When your
database server goes down, once it is restarted requests will be
requeued automatically (the user doesn't have to re-enter them). You
would get a more reliable, better-performing system.

You could also provide users with a mechanism for killing a search if
that search takes too long or if a user changes his/her mind and decides
the search results are not necessary. All that is possible with the
suggestion that I made on Google, but most is not available to you
otherwise.

Good Luck,
Michael D. Kersey
Jul 19 '05 #12
Sorry, guys! Just going by the statement by the author at the beginning of
the article on aspfaq. Didn't check any further. Figured he knew. Oooops!

Larry

"Aaron Bertrand - MVP" <aa***@TRASHaspfaq.com> wrote in message
news:OU**************@tk2msftngp13.phx.gbl...
That is a good idea, Aaron, but this solution is "IE only"


What? You can't use a hidden frame like this, in other browsers:

<frameset rows="99%, 1%">
<frame ...
<frame ...
</frameset>

???

Jul 19 '05 #13
Larry Woods wrote:
Michael,
Could you clarify one of your statements:
"Otherwise your own web server's memory and CPU will be tied up waiting."
Are you saying that an ASP site does not multi-thread?

No. What I meant was that:
- each thread that loads an XMLHTTP component waits for completion of
that component's request,
- that wait apparently can take many seconds, or can timeout, or can
fail,
- during that wait time, the resources (memory, CPU) used by that thread
are tied up and are unavailable for processing other HTTP requests.

ASP (indeed, HTTP, but that is a bigger story) is designed so that
requests are received, processed quickly and responses returned. Waiting
for *any* I/O process (file access, database access, an XMLHTTP request
to another website) ties up resources (CPU and memory). However, while
file access and database access are typically performed in micro- or
milli-seconds, an HTTP request is measured in seconds or tens of
seconds. And the likelihood of timeout or failure is much, much higher
for an HTTP request to a remote server than for a database or file
access on a local server.

Summary: long-running ASP scripts can bog down a web server if many
requests arrive in a short time.

Good Luck,
Michael D. Kersey
Jul 19 '05 #14
The ASP page can see if the client is still active by
checking Response.IsClientConnected (I think it is a
memebr of Response, check the docs for more details) and
if the client is not connected then stop processing the
page.

Alternatively you could try something detaild here;

http://www.aspfree.com/articles/1333,1/articles.aspx

Which is bascially Micahel's suggesting with code.

ASP is mutli-threaded but you don't get too many threads,
and the reason is that pages are supposed to execute very
quickly. When you have long-running tasks then those
threads can quickly get used up.
-----Original Message-----
I have a server page that has served an HTML page with a "Cancel" button onit, BUT this server page has not completed and is running a 15-30 secondprocess before it completes. I want the browser user to be able toterminate the page before the server process has finished. What I tried wasan onClick event that issued a "location.href..." in hopes that this wouldload this referenced page, etc. but I have found that the browser waitsuntil the server process had compled before executing the "location.href".Is there some way that I can "signal" the server to stop processing so thatI can go to the "location.href" page; or is there some other way?
TIA,

Larry Woods
.

Jul 19 '05 #15
Great info, Adrian..and article, also.

What determines the number of threads that ASP gets?

Larry
"Adrian Forbes - MVP" <ad****@xxxnoemailxxx.com> wrote in message
news:0d****************************@phx.gbl...
The ASP page can see if the client is still active by
checking Response.IsClientConnected (I think it is a
memebr of Response, check the docs for more details) and
if the client is not connected then stop processing the
page.

Alternatively you could try something detaild here;

http://www.aspfree.com/articles/1333,1/articles.aspx

Which is bascially Micahel's suggesting with code.

ASP is mutli-threaded but you don't get too many threads,
and the reason is that pages are supposed to execute very
quickly. When you have long-running tasks then those
threads can quickly get used up.
-----Original Message-----
I have a server page that has served an HTML page with

a "Cancel" button on
it, BUT this server page has not completed and is running

a 15-30 second
process before it completes. I want the browser user to

be able to
terminate the page before the server process has

finished. What I tried was
an onClick event that issued a "location.href..." in

hopes that this would
load this referenced page, etc. but I have found that the

browser waits
until the server process had compled before executing

the "location.href".
Is there some way that I can "signal" the server to stop

processing so that
I can go to the "location.href" page; or is there some

other way?

TIA,

Larry Woods
.

Jul 19 '05 #16
>What determines the number of threads that ASP gets?

IIS5 defaults to 25/processor and IIS4 10/processor but
you can change the defaults if you want.

http://msdn.microsoft.com/library/default.asp?
url=/library/en-us/dnserv/html/server02282000.asp

http://www.microsoft.com/serviceprov...tepapers/tunin
giis.asp

More worrying that IIS's thread pool is if your long-
running code is inside MTS/COM+ as that has even less
threads given to it.
Jul 19 '05 #17
Ignorance on my part...

I am instantiating a dll (visual basic-based) that is doing a bunch of
calculations. I have not defined it within a transaction, or anything like
that. It don't access any of the ASP objects, etc. The exposes some
properties and methods. The user "feeds" some data via properties; then
executes a method, which does the calculations, returning a value.

Question: Is this running under MTS/COM+ ??

TIA,

Larry Woods

"Adrian Forbes - MVP" <ad****@xxxnoemailxxx.com> wrote in message
news:01****************************@phx.gbl...
What determines the number of threads that ASP gets?


IIS5 defaults to 25/processor and IIS4 10/processor but
you can change the defaults if you want.

http://msdn.microsoft.com/library/default.asp?
url=/library/en-us/dnserv/html/server02282000.asp

http://www.microsoft.com/serviceprov...tepapers/tunin
giis.asp

More worrying that IIS's thread pool is if your long-
running code is inside MTS/COM+ as that has even less
threads given to it.

Jul 19 '05 #18

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

2
by: Stephen | last post by:
I have code which checks whether a datagrid is empty and if it is it shows a panel on my page. If its not empty then Im using the server.transfer to go to another page so as im able to use the...
3
by: MB | last post by:
Hi, I am doing a project which uses asp.net to develop its forms. The form uses validation web controls to validate the data entered in text boxes. When Cancel Button is pressed which is to exit...
6
by: Ken Varn | last post by:
I have an ASP.NET form that may take a very long time to process a particular request. If the user closes the browser window, the request will continue to process until it completes. This is a...
13
by: Mickey | last post by:
Hi all, Currently I use a timestamp to log users out after 15 minutes of inactivity. However I also need to log a user out if they have just left the page. I need to do this because I store...
5
by: jeremy | last post by:
I have an ASP.Net 2.0 application running on Windows Server 2003. The application displays properly in Internet Explorer, however, when I use a browser control embedded in a .net form, I get an...
2
by: tirath | last post by:
hi, I have a web site where user provide some search criteria and click on button "Search". I want to provide a "Cancel" button which user can click. In case search takes long, user clicks on...
7
by: John Gault | last post by:
I experimented with a snippet of JavaScript that will display a "Please Wait" message and graphic while the results of a cgi script is running (the script grabs a bunch of data and formats it in a...
5
by: This | last post by:
I have a pretty basic emailing script that sends a relatively small number (150) of html emails. The emails are compiled, personalised from a mysql db subscribers list, and sent using mail() -...
1
BeemerBiker
by: BeemerBiker | last post by:
I am using CancelAsyncPostback in an attempt to stop a page from loading. It actually works (the page wont get a postback) but the server keeps running, processing data I dont want processed until...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.