By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
425,810 Members | 783 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 425,810 IT Pros & Developers. It's quick & easy.

Enabling and actioning an asynchronous Stop button

P: n/a
Hi,

I am in a mouseup event for button A and I'd like to disable=false button B
before starting some work. Is there anyway that an event for button B can
then fire before my event processing for button A's mouseup has completed?

I beleive event processing to be single-threaded for good reason but I need
a "stop" button and it's no good if it doesn't do anything until the other
processing has finished :-)

Sorry if this has been asked before, I'm a newbie and couldn't find it.

Regards Richard Maher

PS. If it helps; I'm invoking an applet that connects via tcp/ip socket to
the server and fills a <selectlist with result rows and I'd like a button
so that I can send the OOB character to the server if the user has had
enough. Wher can I read about this Asynchrous Javascript? (I just want the
AJ part or AJAX :-)
Feb 25 '07 #1
Share this Question
Share on Google+
8 Replies


P: n/a
Richard Maher said the following on 2/25/2007 1:43 AM:
Hi,

I am in a mouseup event for button A and I'd like to disable=false button B
before starting some work. Is there anyway that an event for button B can
then fire before my event processing for button A's mouseup has completed?
onmouseup="disableButton('B');doSomeAJAXStuff()"

Where disableButton is a function to disable Button B.

<snip>
PS. If it helps; I'm invoking an applet that connects via tcp/ip socket to
the server and fills a <selectlist with result rows and I'd like a button
so that I can send the OOB character to the server if the user has had
enough. Wher can I read about this Asynchrous Javascript? (I just want the
AJ part or AJAX :-)
Why not just add an "I am tired, abort this crap" button directly into
the Java Applet?

--
Randy
Chance Favors The Prepared Mind
comp.lang.javascript FAQ - http://jibbering.com/faq/index.html
Javascript Best Practices - http://www.JavascriptToolbox.com/bestpractices/
Feb 25 '07 #2

P: n/a
Hi Randy,

Thanks for the reply.
onmouseup="disableButton('B');doSomeAJAXStuff()"
Just to bring a bit more clarity the problem: - I have hit button "Do the
work" and am in that button's onmouseup action and have tried to set the
"Abort" button's disabled status to false. (Which doesn't seem to work, but
even if I haven't preset disable=true in the <inputtag, hitting the button
does nothing while I'm still in OriginalEventFunction() anyway :-()

If I were to use Frames (Where obviously the Applet and its underlying
Socket are global to all frames) can each frame have an event running in
parralel? For example if I had a stop button in an "Applet Frame" that just
sent the OOB when it was hit. Are there seperate event threads for each
frame?

I am not the least bit interested in AJAX, http (or isapi) or webservers (I
tell a lie; I'd like to know if AJAX uses NIO for the sockets, but that's
about it.)
Why not just add an "I am tired, abort this crap" button directly into
the Java Applet?
Because I wish to demonstrate the functionality of a html/javascript form
utilising the Applet's methods to assist in Form validation and general
application-specific functionality. If I used Java then I assume that you're
suggesting I have a dangling dialog box somewhere with a stop button in it;
is that correct?

"Why don't I just do it all in Java? Why don't I skip rubbish applets and
use Webstart? Why am I using a browser at all?"

All questions I expected, but hoped desperately not, to see :-(

Cheers Richard Maher

"Randy Webb" <Hi************@aol.comwrote in message
news:cc********************@telcove.net...
Richard Maher said the following on 2/25/2007 1:43 AM:
Hi,

I am in a mouseup event for button A and I'd like to disable=false
button B
before starting some work. Is there anyway that an event for button B
can
then fire before my event processing for button A's mouseup has
completed?
>
onmouseup="disableButton('B');doSomeAJAXStuff()"

Where disableButton is a function to disable Button B.

<snip>
PS. If it helps; I'm invoking an applet that connects via tcp/ip socket
to
the server and fills a <selectlist with result rows and I'd like a
button
so that I can send the OOB character to the server if the user has had
enough. Wher can I read about this Asynchrous Javascript? (I just want
the
AJ part or AJAX :-)

Why not just add an "I am tired, abort this crap" button directly into
the Java Applet?

--
Randy
Chance Favors The Prepared Mind
comp.lang.javascript FAQ - http://jibbering.com/faq/index.html
Javascript Best Practices -
http://www.JavascriptToolbox.com/bestpractices/
Feb 25 '07 #3

P: n/a
Hi,

Below is the html/javascript that I was hoping would turn the "Abort" button
into a hot abort key. As it wasn't necessary for this example I've just
removed the button altogether but I will come back to the issue of
stop/cancel/abort processing in the next example. I think this "Frames"
idea's got legs so please let me know if you have any knowledge in this area
that may help.

Cheers Richard Maher.

PS. If you've got a chance to look, I couldn't make the Courier Font in the
..green_screen style smaller. Can anyone show me how with this example?

PPS. What controls if a button is Up or Down? I couldn't find the property
or method but sometimes the "send" button stayed down. (I think if disabled
when an alert fired?) Any Ideas how to control that?

<html>

<head>

<title>
Example Client for Tier3 demo queue-lookup server
Author: Richard Maher
</title>

<style>

h2
{
color: Turquoise;
}

p.credits
{
color: Turquoise;
}

.green_screen
{
color: Lime;
background-color: Black;
font-family: courier;
}

</style>

<script type="text/javascript">

function enter(nextfield)
{
if (window.event && window.event.keyCode == 13)
{
nextfield.focus();
return false;
}
else
return true;
}

function num_only(numObj)
{
if (isNaN(numObj.value))
{
numObj.value = "";
alert("Numeric value required");
numObj.focus();
return false;
}
else
return true;
}

function job_lookup()
{
if (!num_only(document.getjobs.entry_number))
return true;

document.getjobs.abort.disabled = false;

document.getjobs.send.disabled = true;
document.getjobs.abort.disabled = false;

var recTypeLen = 2;
var recType = "";
var msgGetInfo = "10";
var jobInfo = "11";
var errorInfo = "00";

var zeroFill = "0000";
var maxRows = "9999";
var outPad = "";
var ok = true;

var selectRef = document.getjobs.job_list;
var msgEntry = "";

selectRef.options[0].selected=true;
var holdHdr = selectRef.options[0];

while (selectRef.options.length 0)
{
selectRef.remove(selectRef.options[0]);
}
selectRef.options[0] = holdHdr
document.getjobs.job_list.size = 1;

msgEntry = document.getjobs.entry_number.value;
outPad = zeroFill.substring(0, (zeroFill.length - msgEntry.length));

var chan = document.getElementById("CornuCopiae");
chan.sendMessage(msgGetInfo.concat(outPad,msgEntry ,maxRows));

if (chan.readMessage(recTypeLen) != recTypeLen)
{
alert ("Error receiving reply from server");
return false;
}
recType = chan.getString(0,recTypeLen);

if (recType == jobInfo)
{
ok = process_jobs(chan);
}
else
{
if (recType == errorInfo)
{
ok = process_error(chan);
}
else
{
alert ("Unknown message type " + recType);
return false;
}
}

if (!ok) return false;

document.getjobs.abort.disabled = true;
document.getjobs.send.disabled = false;
document.getjobs.entry_number.focus();

return true;
}

function process_error(chan)
{
document.getjobs.rec_count.value = 0;

var errMsgLen = 0;
var errLenLen = 3;
var alertMsg = "Error retrieving job entry information\n";

if (chan.readMessage() < errLenLen)
{
alert ("Error receiving Error Length from server");
return false;
}

errMsgLen = parseInt(chan.getString(0,errLenLen),10);
alertMsg = alertMsg + chan.getString(errLenLen,errMsgLen);
document.getjobs.send.disabled = false;
alert(alertMsg);

return true;
}

function process_jobs(chan)
{
var recTypeLen = 2;
var recType = "";
var jobInfo = "11";
var eofInfo = "99";
var eofLen = 3;
var jobMsgLen = 109;
var jobMsg = "";
var rc = 1;
var eofInfo = "99";
var selectRef = document.getjobs.job_list;

for (;;)
{
rc = rc + 1;
if (rc < 6)
document.getjobs.job_list.size = rc;

if (chan.readMessage(jobMsgLen) != jobMsgLen)
{
alert ("Error receiving Job Information from server");
return false;
}

jobMsg = chan.getString(0,4) + "|" +
chan.getString(4,39) + "|" +
chan.getString(43,15) + "|" +
chan.getString(58,31) + "|" +
chan.getString(89,10) + "|" +
chan.getString(99,10);
selectRef.options[selectRef.options.length] = new Option (jobMsg);

if (chan.readMessage(recTypeLen) != recTypeLen)
{
alert ("Error receiving reply from server");
return false;
}

recType = chan.getString(0,recTypeLen);
if (recType != jobInfo)
break;
}

if (recType != eofInfo)
return false;

if (chan.readMessage(eofLen) != eofLen)
{
alert ("Error receiving reply from server");
return false;
}

document.getjobs.rec_count.value = (rc - 1);

return true;
}

function send_oob(oob_char)
{
var chan = document.getElementById("CornuCopiae");
chan.sendUrgentData(oob_char);
return;
}

</script>

</head>

<body>

<h2>Example Client for Tier3 DEMO application server on VMS</h2><hr>

<form name="getjobs">

<object classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
width= "0" height= "0" name="CornuCopiae"
id="CornuCopiae">
<param name="archive" value="tier3.jar">
<param name="codebase"
value="http://1.2.3.6/">
<param name="code"
value="CornuCopiae">
<param name="mayscript" value="yes">
<param name="scriptable" value="true">
<param name="name"
value="CornuCopiae">
<param name="PORT" value="1024">
<param name="HOSTCHARSET"
value="ISO-8859-1">
<param name="MAXBUF" value="512">
<param name="APPLICATION" value="DEMO">

</object>

<br />Enter Job Entry Number [Default is All jobs]:
<input
type="text"
onkeypress="return enter(document.getjobs.send)"
name="entry_number"
maxlength=4
size=4
dir="rtl"
/>

<input
type="button"
onmouseup="job_lookup()"
name="send"
value="Get Job Info."
/>

<input
type="button"
onmousedown="send_oob(1)"
name="abort"
value="Abort"

/>
Jobs Found:
<input
type="text"
name="rec_count"
readonly
value="0"
size=5
/>

<br /><br />

<select
name="job_list"
id="Job_list"
class="green_screen"
size=1>
<option
value="lovhdr"
selected=true
disable=true
>
Nbr--Job-Name--------------------------------Job Status------Queue
Name----------------------Queue Type-Status----</option>
</select>

<br />

</form>

<p>
This is an example of a browser-based, html and JavaScript,
client interacting with a VMS hosted Tier3 Application Server
in a connection-oriented and context-rich environment.<br /><br />

You would have noticed that, when this page was initially displayed,
you were immediately prompted for your VMS Username and Password.
Once authorization is successful your credentials, and an accompanying
Persona, are automatically made available to your 3GL User Action
Routines each time their Server Process is chosen to perform work on
behalf of the client. In this example, the user only gets to see those
Print and Batch jobs that they have privileges to view. You can find
the corresponding server code for this example (demo_uars.cob) in your
t3$examples directory.<br /><br />

The session and server connection are terminated when you change
web pages or refresh this page.
</p>

<hr>

<p class="credits">
"Tier3" is a registered trademark of Tier3 Software Ltd<br />
"CornuCopiae" is a trademark of Richard Maher
</p>

</body>
</html>

Feb 25 '07 #4

P: n/a
Hi,

My "Frames" idea collapsed in a screaming heap :-( and it looks like each
frame has zero autonomy when it comes to event processing. Although I split
my display up into two frames and placed the "Abort" button in a seperate
frame to that containing the currently executing an ONaction, I was unable
to press the "Abort" button and sunsequently trigger a mouseup event.

So is it the case that I'm stuck with a "dangling" Java-driven dialog box
with the hot-abort button in it or nothing.

Please reply even if it's only to say "You're stuffed!".

Is there no way to hook into the [Stop] button on the browser?

Is there no code that can execute while any other ONaction is running?

Cheers Richard Maher

PS. Does the setTimeout() code have to wait if another event is being
served/processed?

"Richard Maher" <ma******@hotspamnotmail.comwrote in message
news:er**********@news-01.bur.connect.com.au...
Hi Randy,

Thanks for the reply.
onmouseup="disableButton('B');doSomeAJAXStuff()"
Just to bring a bit more clarity the problem: - I have hit button "Do the
work" and am in that button's onmouseup action and have tried to set the
"Abort" button's disabled status to false. (Which doesn't seem to work,
but
even if I haven't preset disable=true in the <inputtag, hitting the
button
does nothing while I'm still in OriginalEventFunction() anyway :-()

If I were to use Frames (Where obviously the Applet and its underlying
Socket are global to all frames) can each frame have an event running in
parralel? For example if I had a stop button in an "Applet Frame" that
just
sent the OOB when it was hit. Are there seperate event threads for each
frame?

I am not the least bit interested in AJAX, http (or isapi) or webservers
(I
tell a lie; I'd like to know if AJAX uses NIO for the sockets, but that's
about it.)
Why not just add an "I am tired, abort this crap" button directly into
the Java Applet?

Because I wish to demonstrate the functionality of a html/javascript form
utilising the Applet's methods to assist in Form validation and general
application-specific functionality. If I used Java then I assume that
you're
suggesting I have a dangling dialog box somewhere with a stop button in
it;
is that correct?

"Why don't I just do it all in Java? Why don't I skip rubbish applets and
use Webstart? Why am I using a browser at all?"

All questions I expected, but hoped desperately not, to see :-(

Cheers Richard Maher

"Randy Webb" <Hi************@aol.comwrote in message
news:cc********************@telcove.net...
Richard Maher said the following on 2/25/2007 1:43 AM:
Hi,
>
I am in a mouseup event for button A and I'd like to disable=false
button B
before starting some work. Is there anyway that an event for button B
can
then fire before my event processing for button A's mouseup has
completed?

onmouseup="disableButton('B');doSomeAJAXStuff()"

Where disableButton is a function to disable Button B.

<snip>
PS. If it helps; I'm invoking an applet that connects via tcp/ip
socket
to
the server and fills a <selectlist with result rows and I'd like a
button
so that I can send the OOB character to the server if the user has had
enough. Wher can I read about this Asynchrous Javascript? (I just want
the
AJ part or AJAX :-)
Why not just add an "I am tired, abort this crap" button directly into
the Java Applet?

--
Randy
Chance Favors The Prepared Mind
comp.lang.javascript FAQ - http://jibbering.com/faq/index.html
Javascript Best Practices -
http://www.JavascriptToolbox.com/bestpractices/


Mar 3 '07 #5

P: n/a
Richard Maher wrote:
<snip>
Please reply even if it's only to say "You're stuffed!".
<snip>
"Richard Maher" <ma******@hotspamnotmail.com...
<snip>
>Randy Webb wrote in message ...
<snip>

You are aware that the implication of this group's FAQ's advice on
posting style is that if you elect to top-post here it may be taken as an
indication that you do not want to receive any help here?

Richard.

Mar 3 '07 #6

P: n/a
"Richard Maher" <ma******@hotspamnotmail.comwrote in message
news:es**********@news-01.bur.connect.com.au...
Hi,

My "Frames" idea collapsed in a screaming heap :-( and it looks like each
frame has zero autonomy when it comes to event processing. Although I
split
my display up into two frames and placed the "Abort" button in a seperate
frame to that containing the currently executing an ONaction, I was unable
to press the "Abort" button and sunsequently trigger a mouseup event.

So is it the case that I'm stuck with a "dangling" Java-driven dialog box
with the hot-abort button in it or nothing.

Please reply even if it's only to say "You're stuffed!".

Is there no way to hook into the [Stop] button on the browser?

Is there no code that can execute while any other ONaction is running?

Cheers Richard Maher

PS. Does the setTimeout() code have to wait if another event is being
served/processed?

"Richard Maher" <ma******@hotspamnotmail.comwrote in message
news:er**********@news-01.bur.connect.com.au...
Hi Randy,

Thanks for the reply.
onmouseup="disableButton('B');doSomeAJAXStuff()"
>
Just to bring a bit more clarity the problem: - I have hit button "Do
the
work" and am in that button's onmouseup action and have tried to set the
"Abort" button's disabled status to false. (Which doesn't seem to work,
but
even if I haven't preset disable=true in the <inputtag, hitting the
button
does nothing while I'm still in OriginalEventFunction() anyway :-()

If I were to use Frames (Where obviously the Applet and its underlying
Socket are global to all frames) can each frame have an event running in
parralel? For example if I had a stop button in an "Applet Frame" that
just
sent the OOB when it was hit. Are there seperate event threads for each
frame?

I am not the least bit interested in AJAX, http (or isapi) or webservers
(I
tell a lie; I'd like to know if AJAX uses NIO for the sockets, but
that's
about it.)
Why not just add an "I am tired, abort this crap" button directly into
the Java Applet?
Because I wish to demonstrate the functionality of a html/javascript
form
utilising the Applet's methods to assist in Form validation and general
application-specific functionality. If I used Java then I assume that
you're
suggesting I have a dangling dialog box somewhere with a stop button in
it;
is that correct?

"Why don't I just do it all in Java? Why don't I skip rubbish applets
and
use Webstart? Why am I using a browser at all?"

All questions I expected, but hoped desperately not, to see :-(

Cheers Richard Maher

"Randy Webb" <Hi************@aol.comwrote in message
news:cc********************@telcove.net...
Richard Maher said the following on 2/25/2007 1:43 AM:
Hi,

I am in a mouseup event for button A and I'd like to disable=false
button B
before starting some work. Is there anyway that an event for button
B
can
then fire before my event processing for button A's mouseup has
completed?
>
onmouseup="disableButton('B');doSomeAJAXStuff()"
>
Where disableButton is a function to disable Button B.
>
<snip>
>
PS. If it helps; I'm invoking an applet that connects via tcp/ip
socket
to
the server and fills a <selectlist with result rows and I'd like a
button
so that I can send the OOB character to the server if the user has
had
enough. Wher can I read about this Asynchrous Javascript? (I just
want
the
AJ part or AJAX :-)
>
Why not just add an "I am tired, abort this crap" button directly into
the Java Applet?
>
--
Randy
Chance Favors The Prepared Mind
comp.lang.javascript FAQ - http://jibbering.com/faq/index.html
Javascript Best Practices -
http://www.JavascriptToolbox.com/bestpractices/

"Richard Cornford" <Ri*****@litotes.demon.co.ukwrote in message
news:es*******************@news.demon.co.uk...
Richard Maher wrote:
<snip>
Please reply even if it's only to say "You're stuffed!".
<snip>
"Richard Maher" <ma******@hotspamnotmail.com...
<snip>
Randy Webb wrote in message ...
<snip>

You are aware that the implication of this group's FAQ's advice on
posting style is that if you elect to top-post here it may be taken as an
indication that you do not want to receive any help here?

Richard.
Hi Richard,

Ok, appologies if my ignorance upset anyone.

But while we're here, you wouldn't have any idea how to set up a hot-abort
key wouldya?

Randy's suggestion of Java would work but I wanted it to be a little more
integrated with the browser; any ideas?

I'm used to processor modes where an inner(Exec) mode Asynchronous System
Trap can interrupt a currently executing outer(User) mode AST. In this JS
case I imagine we're dealling with threads and only a single-thread to deal
with one event stack. Is that sort of what happens? What I think I'm seeing
is not an event stack but rather a single event pigeon hole that says "Sorry
no more events please, pigeon is already home. I don't care what buttons you
press or what focus has shifted or what objects the mouse is currently
travelling over; I'm in an ONevent(bit of code) and I'm just *not* taking
*any* calls!" :-(

A broader question could be "If I created a seperate thread via my Applet
and it was busy beavering away, how would that ever communicate with, or
have effect on, the browser interface and Javascript code?"

Regards Richard Maher
Mar 4 '07 #7

P: n/a
In comp.lang.javascript message <esd27a$n5d$1@news-
01.bur.connect.com.au>, Sun, 4 Mar 2007 09:06:10, Richard Maher
<ma******@hotspamnotmail.composted:
Lines: 163
>"Richard Maher" <ma******@hotspamnotmail.comwrote in message
news:es**********@news-01.bur.connect.com.au...
>Hi,
>... ... ... ... ... ...
>Ok, appologies if my ignorance upset anyone.
You are aware that the implication of this group's FAQ's advice on
posting style is that if you elect to over-quote here it may be taken as
an indication that you do not want to receive any help here?

Apologising for a fault without showing signs of having taken the
suggested step to reduce one's ignorance is indicative of insincerity.

It's a good idea to read the newsgroup and its FAQ. See below.

--
(c) John Stockton, Surrey, UK. ?@merlyn.demon.co.uk Turnpike v6.05 IE 6
news:comp.lang.javascript FAQ <URL:http://www.jibbering.com/faq/index.html>.
<URL:http://www.merlyn.demon.co.uk/js-index.htmjscr maths, dates, sources.
<URL:http://www.merlyn.demon.co.uk/TP/BP/Delphi/jscr/&c, FAQ items, links.
Mar 4 '07 #8

P: n/a
Hi JR, Dickie,

Thanks for the feedback.

You are aware that the implication of your posts is that neither of you have
a life, or that you spend your spare time trolling unsuspecting newsgroups,
or both. It is a good idea to move away from the keyboard and go outside for
a while! Go skiing, go to the beach if it's warm enough (I know I am!), find
a girl - fall in love, (if you've already got one then fall in love all over
again), go to the beer-garden and tell humorous stories. Maybe then, the
next newbie to stumble over c.l.javascript won't feel as if he's walked into
a regime of anally retentive Nazis or self-serving, narcissistic
knob-jockeys!

What a fun and helpful place. Good-luck!

Regards Richard Maher

PS. Check out Wikipedia; absolute hours of fun for those with your editing
talents!

"Dr J R Stockton" <re*******@merlyn.demon.co.ukwrote in message
news:$0**************@invalid.uk.co.demon.merlyn.i nvalid...
In comp.lang.javascript message <esd27a$n5d$1@news-
01.bur.connect.com.au>, Sun, 4 Mar 2007 09:06:10, Richard Maher
<ma******@hotspamnotmail.composted:
Lines: 163
"Richard Maher" <ma******@hotspamnotmail.comwrote in message
news:es**********@news-01.bur.connect.com.au...
Hi,
... ... ... ... ... ...
Ok, appologies if my ignorance upset anyone.

You are aware that the implication of this group's FAQ's advice on
posting style is that if you elect to over-quote here it may be taken as
an indication that you do not want to receive any help here?

Apologising for a fault without showing signs of having taken the
suggested step to reduce one's ignorance is indicative of insincerity.

It's a good idea to read the newsgroup and its FAQ. See below.

--
(c) John Stockton, Surrey, UK. ?@merlyn.demon.co.uk Turnpike v6.05
IE 6
news:comp.lang.javascript FAQ
<URL:http://www.jibbering.com/faq/index.html>.
<URL:http://www.merlyn.demon.co.uk/js-index.htmjscr maths, dates,
sources.
<URL:http://www.merlyn.demon.co.uk/TP/BP/Delphi/jscr/&c, FAQ items,
links.
Mar 5 '07 #9

This discussion thread is closed

Replies have been disabled for this discussion.