Running server side code without submitting current page?

J

javelin

I need to fire off some server side code, but I don't want to submit
the page I'm on. I know that's not technically possible (without
something like AJAX, maybe?). What I thought might work is to pop-up
another window (invisibly?), have it run the code, close itself and
return the results. What do you think, is it possible???

Please let me know if you have any ideas.

Thx!!!
 
A

ASM

javelin a écrit :
I need to fire off some server side code, but I don't want to submit
the page I'm on. I know that's not technically possible (without
something like AJAX, maybe?). What I thought might work is to pop-up
another window (invisibly?), have it run the code, close itself and
return the results. What do you think, is it possible???

Please let me know if you have any ideas.

I've a lot :)

You can play with a backward popup ( <body onload="opener.focus()">)
You can also play with an invisible iframe.

But more elegant is to use XMLHttpRequest (part of Ajax)
 
R

Randy Webb

ASM said the following on 11/16/2006 8:36 PM:
javelin a écrit :

I've a lot :)

You can play with a backward popup ( <body onload="opener.focus()">)
You can also play with an invisible iframe.

But more elegant is to use XMLHttpRequest (part of Ajax)

No, the most elegant would be the one the FAQ refers to whereby you
change the .src of an image and the server side script gets fired. Why
make it harder than it has to be?
 
J

javelin

Not sure I follow you. I don't know how to fire off the server side
script. Can you point me to the FAQ or other refs?
 
J

Jeremy

javelin said:
Not sure I follow you. I don't know how to fire off the server side
script. Can you point me to the FAQ or other refs?

We like to bottom-post in this group, to maintain the conversation
ordering. I've fixed yours for you (see how I moved your text below
Randy's?)

What Randy means with the image source is that you can use some code
like this:

------------
var myScriptCall = new Image();
myScriptCall.src = "/path/to/my/script";
------------

Or, in DOM terms:

------------
var myScriptCall = document.createElement("img");
myScriptCall.src = "/path/to/my/script";

//make it invisible but still load
myScriptCall.style.width = "0px";
document.body.appendChild(myScriptCall);
-----------

And your script will be requested (and therefore executed).

However, since one of your requirements seems to be to "return the
results", you are much better off with XMLHttpRequest - also known
(often erroneously) as AJAX. It lets you create a javascript object
which will go off and do a background request to your web server and
return the result. Which is exactly what you want.

Do some googling on XMLHttpRequest and see if you can get yourself
started. It's not as hard as it looks. If you have trouble, come back
and ask.

Jeremy
 
A

ASM

Jeremy a écrit :
What Randy means with the image source is that you can use some code
like this:


I've tried that

myScriptCall.src = 'script.js'

file script.js :

alert('seen');


Nothing happens ... no message box :-(

(no error in FF console)
 
R

Randy Webb

ASM said the following on 11/21/2006 5:37 AM:
Jeremy a écrit :


I've tried that

myScriptCall.src = 'script.js'

file script.js :

alert('seen');


Nothing happens ... no message box :-(

The .src of an Image won't execute script. If you want to load script.js
and have it executed, see this thread (or any other you can find
searching for my name and "loadJSFile" in it).

<URL:
http://groups-beta.google.com/group...Randy+Webb+LoadJSFile&rnum=4#5fb5e75ca498ae6b>

<URL:
http://groups-beta.google.com/group...Randy+Webb+LoadJSFile&rnum=2#0b637acb0115f1f8>

The second one has a link to this page:
<URL: http://members.aol.com/_ht_a/hikksnotathome/loadJSFile/index.html>

Can you test that page for me if you have any browsers that aren't
listed on that page? If you have a different OS but the same version
browser I would appreciate that also as there may be an OS difference in
the page.

You should get an alert when the page loads, and then clicking on the
three buttons at the top you may or may not get an alert (depending on
whether that method worked or not). OS ver, browser name and version.

Anybody else reading this that can check that page and test it in any
browser/OS not listed and let me know it would be appreciated as well.
 
A

ASM

Randy Webb a écrit :
ASM said the following on 11/21/2006 5:37 AM:

The .src of an Image won't execute script. If you want to load script.js
and have it executed, see this thread (or any other you can find
searching for my name and "loadJSFile" in it).

<URL:
http://groups-beta.google.com/group...Randy+Webb+LoadJSFile&rnum=4#5fb5e75ca498ae6b>

That doesn't answer to my question (I know this way to do)
I'ld like to do it in JS 1.1 (JS without DOM)

I've saw several times this page.
And ... ?
What have I to do with it ?
Only right button works : fireFox 2, Safari 1.3.2.
No button works : iCab beta 3.0.0
All work : Opera 9.0
All browsers except NC4.5 show the first alert.
Mac OS 10.3.9

NC4.5 doesn't like id="myScriptTag"
 
D

Dr J R Stockton

In comp.lang.javascript message
Mon said:
Not sure I follow you. I don't know how to fire off the server side
script. Can you point me to the FAQ or other refs?


You seem to be rather obtuse today.
You should read what you quote; if it's worth showing again to others,
it's worth showing to yourself first.

When you have read the FAQ thoroughly, you will know more about what you
need to do when presenting responses.
 
J

javelin

I apologize for my apparent ignorance, Dr J. I was assuming the FAQ
mentioned was a reference to a posting here on this , as I've seen FAQ
postings in other newsgroups.
 
J

javelin

Thanks David. I have some rudimentary knowledge of AJAX, and have used
XML to display data in web pages. I don't think it will kill me, I was
just not sure if it was the best tool for checking database on the fly.
I actually have to call a component, so I'll have to see if AJAX will
do the trick.

Thanks again.
 
J

javelin

Jeremy said:
We like to bottom-post in this group, to maintain the conversation
ordering. I've fixed yours for you (see how I moved your text below
Randy's?)

What Randy means with the image source is that you can use some code
like this:

------------
var myScriptCall = new Image();
myScriptCall.src = "/path/to/my/script";
------------

Or, in DOM terms:

------------
var myScriptCall = document.createElement("img");
myScriptCall.src = "/path/to/my/script";

//make it invisible but still load
myScriptCall.style.width = "0px";
document.body.appendChild(myScriptCall);
-----------

And your script will be requested (and therefore executed).

However, since one of your requirements seems to be to "return the
results", you are much better off with XMLHttpRequest - also known
(often erroneously) as AJAX. It lets you create a javascript object
which will go off and do a background request to your web server and
return the result. Which is exactly what you want.

Do some googling on XMLHttpRequest and see if you can get yourself
started. It's not as hard as it looks. If you have trouble, come back
and ask.

Jeremy

Jeremy, I just got to your post after replying to a few others, so I'm
sorry I top posted my replies on those as well. Thanks for the notice.

Also, thanks for the reference to XMLHttpRequest. I'll be sure to
research and test it. I am hoping I can figure out how to call
components with it as well.

Thanks once again.

Javelin
 
D

Dr J R Stockton

In comp.lang.javascript message
Wed said:
I apologize for my apparent ignorance, Dr J. I was assuming the FAQ
mentioned was a reference to a posting here on this , as I've seen FAQ
postings in other newsgroups.

Don't apologise for your manifest ignorance and/or stupidity. Instead,
terminate its manifestation By reading and understanding firstly what
you quote and secondly the FAQ itself. Then consider posting further
articles.
 
Y

Yanick

javelin a écrit :
I need to fire off some server side code, but I don't want to submit
the page I'm on. I know that's not technically possible (without
something like AJAX, maybe?). What I thought might work is to pop-up
another window (invisibly?), have it run the code, close itself and
return the results. What do you think, is it possible???

Please let me know if you have any ideas.

Thx!!!


Consider using an internal frame (<iframe>), and look at this document
:

http://www.oreillynet.com/pub/a/javascript/2002/02/08/iframe.html

You might find what you're looking for.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,744
Messages
2,569,479
Members
44,900
Latest member
Nell636132

Latest Threads

Top