In my view I have a: <%= render :partial => ''uplog'' %> and the partial is shown below. Note there is js in it which I thought got executed on load (but, I have found out this does NOT happen when a partial is loaded. How else can I execute the js below when the partial gets loaded (someone said to call it explicitly....but how and from where?) THanks, Janna B <div id="namesdata" style="float: left; width: 200px;"> names </div> <div id="rowsdata" style="float: left; "> rows </div> <script> startClock(''../../../../www/test/ggriptest/getdata1.dat'',''./ getdata2.php''); </script>
On Mon, 2009-07-06 at 16:40 -0700, JannaB wrote:> In my view I have a: > > <%= render :partial => ''uplog'' %> > > and the partial is shown below. Note there is js in it which I thought > got executed on load (but, I have found out this does NOT happen when > a partial is loaded. How else can I execute the js below when the > partial gets loaded (someone said to call it explicitly....but how and > from where?) THanks, Janna B >Not tested, but I believe you can add the onload to the div. <div id="namesdata" style="float: left; width: 200px;" onload="startClock(''your parameters'' in single quotes'')">
Thanks but that doesn''t work in a partial.
I don''t think any javascript will get executed until the document is ready at which time onload will get fired. You could put the code in the body on load but that wouldn''t help in the partial. You could use some jquery script and register a functioncall like <div id="namesdata" style="float: left; width: 200px;"> names </div> <div id="rowsdata" style="float: left; "> rows </div> <script> $(document).ready(function(){ startClock(''../../../../www/test/ggriptest/getdata1.dat'',''./ getdata2.php''); }); </script> On Mon, Jul 6, 2009 at 7:57 PM, JannaB <mistressjanna-PkbjNfxxIARBDgjK7y7TUQ@public.gmane.org> wrote:> > Thanks but that doesn''t work in a partial. > > >--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
No, nor does this work in a partial.
On Tue, 2009-07-07 at 02:06 -0700, JannaB wrote:> No, nor does this work in a partial. >You haven''t said what triggers the load of the partial. If you can make that event an Ajax event, then you can trigger the execution of the JS directly in an RJS template. The only problem I''d potentially anticipate would be if the browser decided to execute the JS prior to the completion of the rendering of the partial. Shouldn''t happen, but if it did, you could just put the function in application.js and it would already be there. If you go this route, the only ''tricky'' part I ran across was understanding that, assuming your JS signature looks like this: startClock(''arg1''); The RJS signature looks like this: page.call "startClock" "arg1" HTH, Bill
what exactly happen , when partial loaded ? any error ? ~ N a R e N On Tue, Jul 7, 2009 at 7:56 PM, bill walton <bwalton.im-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> > On Tue, 2009-07-07 at 02:06 -0700, JannaB wrote: > > No, nor does this work in a partial. > > > You haven''t said what triggers the load of the partial. If you can make > that event an Ajax event, then you can trigger the execution of the JS > directly in an RJS template. The only problem I''d potentially > anticipate would be if the browser decided to execute the JS prior to > the completion of the rendering of the partial. Shouldn''t happen, but > if it did, you could just put the function in application.js and it > would already be there. > > If you go this route, the only ''tricky'' part I ran across was > understanding that, assuming your JS signature looks like this: > > startClock(''arg1''); > > The RJS signature looks like this: > > page.call "startClock" "arg1" > > HTH, > Bill > > > > >--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Note that there is nothing special about the partial. The browser has no idea if the code came from a single template or was generated from the partials. So if something doesn''t work its unrelated to the partial. Anyway.... if you have a javascript on that page that does gets executed you can *add* more code to the same spot from the partial like this: <% content_for :on_load do %> .... js code to run on load <% end %> wherever you have a js code that runs on the load just add: <%= yield :on_load %> And it will add whatever was added in the partial. Note that it will work if the yield is in the layout or in the template *after* the rendering of the partial, this is because when it runs the partial must have run already (and layouts code is the last to execute btw, so that if you do <% @qwe = 123 %> anywhere in the templates or partials it will be available in the layout) Hope this helps. -- Vitaly Kushner http://twitter.com/vkushner Founder, Astrails Ltd. http://astrails.com Check out our blog: http://blog.astrails.com On Jul 7, 2:40 am, JannaB <mistressja...-PkbjNfxxIARBDgjK7y7TUQ@public.gmane.org> wrote:> In my view I have a: > > <%= render :partial => ''uplog'' %> > > and the partial is shown below. Note there is js in it which I thought > got executed on load (but, I have found out this does NOT happen when > a partial is loaded. How else can I execute the js below when the > partial gets loaded (someone said to call it explicitly....but how and > from where?) THanks, Janna B > > <div id="namesdata" style="float: left; width: 200px;"> > names > </div> > <div id="rowsdata" style="float: left; "> > rows > </div> > <script> > startClock(''../../../../www/test/ggriptest/getdata1.dat'',''./ > getdata2.php''); > </script>
Nothing happens. Nothing at all. I see "rows" and "names" printed up, but in my uplog.js, which contains the function startclock(..) which has an alert in it, evidently never gets called. Worse yet, I get a peculiar error in the Firefox Error Console when I click on the link_to_remote link (the error is simply "Permission denied to call method Location.toString). I am including all of the code below. ## Here is my partial that gets called: <div id="namesdata" style="float: left; width: 200px;" > names <%= link_to_remote("StartClock", :url =>{ :action => :clockstarter }) %> </div> <div id="rowsdata" style="float: left; "> rows </div> ## Here is clockstarter.rjs: page.call "startClock" "../../../../www/test/ggriptest/getdata1.dat" "./getdata2.php''" ## This is in my layout, which the partial is loaded into: <%= javascript_include_tag "uplog" %> ## Here is /public/javascripts/uplog.js if (window.ActiveXObject && !window.XMLHttpRequest) { window.XMLHttpRequest = function() { var msxmls = new Array( ''Msxml2.XMLHTTP.6.0'', ''Msxml2.XMLHTTP.5.0'', ''Msxml2.XMLHTTP.4.0'', ''Msxml2.XMLHTTP.3.0'', ''Msxml2.XMLHTTP'', ''Microsoft.XMLHTTP''); for (var i = 0; i < msxmls.length; i++) { try { return new ActiveXObject(msxmls[i]); } catch (e) { } } return null; }; } // Gecko support /* ;-) */ // Opera support if (window.opera && !window.XMLHttpRequest) { window.XMLHttpRequest = function() { this.readyState = 0; // 0=uninitialized,1=loading,2=loaded, 3=interactive,4=complete this.status = 0; // HTTP status codes this.statusText = ''''; this._headers = []; this._aborted = false; this._async = true; this._defaultCharset = ''ISO-8859-1''; this._getCharset = function() { var charset = _defaultCharset; var contentType = this.getResponseHeader(''Content- type'').toUpperCase(); val = contentType.indexOf(''CHARSET=''); if (val != -1) { charset = contentType.substring(val); } val = charset.indexOf('';''); if (val != -1) { charset = charset.substring(0, val); } val = charset.indexOf('',''); if (val != -1) { charset = charset.substring(0, val); } return charset; }; this.abort = function() { this._aborted = true; }; this.getAllResponseHeaders = function() { return this.getAllResponseHeader(''*''); }; this.getAllResponseHeader = function(header) { var ret = ''''; for (var i = 0; i < this._headers.length; i++) { if (header == ''*'' || this._headers[i].h == header) { ret += this._headers[i].h + '': '' + this._headers[i].v + ''\n''; } } return ret; }; this.getResponseHeader = function(header) { var ret = getAllResponseHeader(header); var i = ret.indexOf(''\n''); if (i != -1) { ret = ret.substring(0, i); } return ret; }; this.setRequestHeader = function(header, value) { this._headers[this._headers.length] = {h:header, v:value}; }; this.open = function(method, url, async, user, password) { this.method = method; this.url = url; this._async = true; this._aborted = false; this._headers = []; if (arguments.length >= 3) { this._async = async; } if (arguments.length > 3) { opera.postError(''XMLHttpRequest.open() - user/password not supported''); } this.readyState = 1; if (this.onreadystatechange) { this.onreadystatechange(); } }; this.send = function(data) { if (!navigator.javaEnabled()) { alert("XMLHttpRequest.send() - Java must be installed and enabled."); return; } if (this._async) { setTimeout(this._sendasync, 0, this, data); // this is not really asynchronous and won''t execute until the current // execution context ends } else { this._sendsync(data); } } this._sendasync = function(req, data) { if (!req._aborted) { req._sendsync(data); } }; this._sendsync = function(data) { this.readyState = 2; if (this.onreadystatechange) { this.onreadystatechange(); } // open connection var url = new java.net.URL(new java.net.URL (window.location.href), this.url); var conn = url.openConnection(); for (var i = 0; i < this._headers.length; i++) { conn.setRequestProperty(this._headers[i].h, this._headers [i].v); } this._headers = []; if (this.method == ''POST'') { // POST data conn.setDoOutput(true); var wr = new java.io.OutputStreamWriter(conn.getOutputStream (), this._getCharset()); wr.write(data); wr.flush(); wr.close(); } // read response headers // NOTE: the getHeaderField() methods always return nulls for me :( var gotContentEncoding = false; var gotContentLength = false; var gotContentType = false; var gotDate = false; var gotExpiration = false; var gotLastModified = false; for (var i = 0; ; i++) { var hdrName = conn.getHeaderFieldKey(i); var hdrValue = conn.getHeaderField(i); if (hdrName == null && hdrValue == null) { break; } if (hdrName != null) { this._headers[this._headers.length] = {h:hdrName, v:hdrValue}; switch (hdrName.toLowerCase()) { case ''content-encoding'': gotContentEncoding = true; break; case ''content-length'' : gotContentLength = true; break; case ''content-type'' : gotContentType = true; break; case ''date'' : gotDate = true; break; case ''expires'' : gotExpiration = true; break; case ''last-modified'' : gotLastModified = true; break; } } } // try to fill in any missing header information var val; val = conn.getContentEncoding(); if (val != null && !gotContentEncoding) this._headers [this._headers.length] = {h:''Content-encoding'', v:val}; val = conn.getContentLength(); if (val != -1 && !gotContentLength) this._headers [this._headers.length] = {h:''Content-length'', v:val}; val = conn.getContentType(); if (val != null && !gotContentType) this._headers [this._headers.length] = {h:''Content-type'', v:val}; val = conn.getDate(); if (val != 0 && !gotDate) this._headers[this._headers.length] {h:''Date'', v:(new Date(val)).toUTCString()}; val = conn.getExpiration(); if (val != 0 && !gotExpiration) this._headers [this._headers.length] = {h:''Expires'', v:(new Date(val)).toUTCString ()}; val = conn.getLastModified(); if (val != 0 && !gotLastModified) this._headers [this._headers.length] = {h:''Last-modified'', v:(new Date (val)).toUTCString()}; // read response data var reqdata = ''''; var stream = conn.getInputStream(); if (stream) { var reader = new java.io.BufferedReader(new java.io.InputStreamReader(stream, this._getCharset())); var line; while ((line = reader.readLine()) != null) { if (this.readyState == 2) { this.readyState = 3; if (this.onreadystatechange) { this.onreadystatechange(); } } reqdata += line + ''\n''; } reader.close(); this.status = 200; this.statusText = ''OK''; this.responseText = reqdata; this.readyState = 4; if (this.onreadystatechange) { this.onreadystatechange(); } if (this.onload) { this.onload(); } } else { // error this.status = 404; this.statusText = ''Not Found''; this.responseText = ''''; this.readyState = 4; if (this.onreadystatechange) { this.onreadystatechange(); } if (this.onerror) { this.onerror(); } } }; }; } function startClock(namedata,rowsdata){ alert(namedata); setTimeout("startClock()", 2000); getNames(namedata); getRows(rowdata); } var req; function getNames(namedata){ req = new XMLHttpRequest(); if(req){ req.onreadystatechange=processReqChange1; try{ req.open(''GET'', namedata); req.setRequestHeader(''If-Modified-Since'' ,''Sat, 1 Jan 1900 00:00:00 GMT''); req.send(""); }catch(e){ alert(e); } } } function getRows(rowdata){ req = new XMLHttpRequest(); if(req){ req.onreadystatechange=processReqChange2; try{ req.open(''GET'', rowdata); req.setRequestHeader(''If-Modified-Since'' ,''Sat, 1 Jan 1900 00:00:00 GMT''); req.send(""); }catch(e){ alert(e); } } } function processReqChange1(){ if(req.readyState == 4 && (req.status == 200 || req.status == 304)){ var rows = eval(req.responseText); var html = "<br><br><table>"; for(r in rows){ if(rows[r].status=="-1") html+="<tr><td><FONT COLOR=\"#4B7399\">"+rows[r].order+". "+rows [r].username+"</FONT></td></tr>"; else if(rows[r].status=="0") html+="<tr><td>"+rows[r].order+". "+rows[r].username+"</td></tr>"; else html+="<tr><td bgcolor=\"#4B7399\"><FONT COLOR=\"#FFFFFF\">"+rows [r].order+". "+rows[r].username+"</td></tr>"; } html+="</table>"; document.getElementById("rowsdata").innerHTML = html; } } function processReqChange2(){ if(req.readyState == 4 && (req.status == 200 || req.status == 304)){ var rows = eval(req.responseText); var html=rows[0].totals+" ups for today for <b><u>"+rows[0].room +"</b></u><br><br><table>"; html+="<tr align=\"center\" valign=\"top\" bgcolor=\"#C0C0C0\">"; html+="<th valign=\"top\" align=\"center\" bgcolor=\"#C0C0C0\" nowrap>#</th>"; html+="<th valign=\"top\" align=\"center\" bgcolor=\"#C0C0C0\" nowrap>Day</th>"; html+="<th valign=\"top\" align=\"center\" bgcolor=\"#C0C0C0\" nowrap>Time</th>"; html+="<th valign=\"top\" align=\"center\" bgcolor=\"#C0C0C0\" nowrap>Sensor</th>"; html+="<th valign=\"top\" align=\"center\" bgcolor=\"#C0C0C0\" nowrap>Heads</th>"; html+="<th valign=\"top\" align=\"center\" bgcolor=\"#C0C0C0\" nowrap>Associate</th>"; html+="<th valign=\"top\" align=\"center\" bgcolor=\"#C0C0C0\" nowrap>CXL</th>"; html+="<th valign=\"top\" align=\"center\" bgcolor=\"#C0C0C0\" nowrap>BB</th>"; html+="<th valign=\"top\" align=\"center\" bgcolor=\"#C0C0C0\" nowrap>TO</th>"; html+="<th valign=\"top\" align=\"center\" bgcolor=\"#C0C0C0\" nowrap>DR</th>"; html+="<th valign=\"top\" align=\"center\" bgcolor=\"#C0C0C0\" nowrap>OK</th>"; html+="</tr>"; var k=-1; for(r in rows){ k++; if(k>0){ html+="<tr>"; html+="<td>"+rows[r].dayno+"</td><td>"+rows[r].dof+"</ td><td>"+rows[r].time+"</td><td>"+rows[r].sensor+"</td><td>"+rows [r].hits+"</td><td>"+rows[r].assoc+"</td><td>"+"CXL"; if(rows[r].bb==-1) html+="</td><td bgcolor=\"#FFFFFF\">"+"BB"; else if(rows[r].bb==1) html+="</td><td bgcolor=\"#1F7F00\">"+"BB"; else html+="</td><td>"+"BB"; if(rows[r].tor==-1) html+="</td><td bgcolor=\"#FFFFFF\">"+"TO"; else if(rows[r].tor==1) html+="</td><td bgcolor=\"#1F7F00\">"+"TO"; else html+="</td><td>"+"TO"; if(rows[r].dr==-1) html+="</td><td bgcolor=\"#FFFFFF\">"+"DR"; else if(rows[r].dr==1) html+="</td><td bgcolor=\"#1F7F00\">"+"DR"; else html+="</td><td>"+"DR"; html+="</td><td>"+"OK"+"</td>"; html+="</tr>"; } } html+="</table>"; document.getElementById("namesdata").innerHTML = html; } } On Jul 7, 10:34 am, Narendra sisodiya <naren.sisod...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> what exactly happen , when partial loaded ? any error ? > > ~ N a R e N >
there might be some problem in you arguments specially second one. For checking the same just pass an empty string to it and check if the alert is coming . ~ N a R e N On Tue, Jul 7, 2009 at 8:42 PM, JannaB <mistressjanna-PkbjNfxxIARBDgjK7y7TUQ@public.gmane.org> wrote:> > Nothing happens. Nothing at all. I see "rows" and "names" printed up, > but in my uplog.js, which contains the function startclock(..) which > has an alert in it, evidently never gets called. Worse yet, I get a > peculiar error in the Firefox Error Console when I click on the > link_to_remote link (the error is simply "Permission denied to call > method Location.toString). I am including all of the code below. > > ## Here is my partial that gets called: > > <div id="namesdata" style="float: left; width: 200px;" > > names > <%= link_to_remote("StartClock", > :url =>{ :action => :clockstarter }) %> > </div> > <div id="rowsdata" style="float: left; "> > rows > </div> > > ## Here is clockstarter.rjs: > > page.call "startClock" "../../../../www/test/ggriptest/getdata1.dat" > "./getdata2.php''" > > ## This is in my layout, which the partial is loaded into: > > <%= javascript_include_tag "uplog" %> > > ## Here is /public/javascripts/uplog.js > > > if (window.ActiveXObject && !window.XMLHttpRequest) { > > window.XMLHttpRequest = function() { > > var msxmls = new Array( > > ''Msxml2.XMLHTTP.6.0'', > > ''Msxml2.XMLHTTP.5.0'', > > ''Msxml2.XMLHTTP.4.0'', > > ''Msxml2.XMLHTTP.3.0'', > > ''Msxml2.XMLHTTP'', > > ''Microsoft.XMLHTTP''); > > for (var i = 0; i < msxmls.length; i++) { > > try { > > return new ActiveXObject(msxmls[i]); > > } catch (e) { > > } > > } > > return null; > > }; > > } > > // Gecko support > > /* ;-) */ > > // Opera support > > if (window.opera && !window.XMLHttpRequest) { > > window.XMLHttpRequest = function() { > > this.readyState = 0; // 0=uninitialized,1=loading,2=loaded, > 3=interactive,4=complete > > this.status = 0; // HTTP status codes > > this.statusText = ''''; > > this._headers = []; > > this._aborted = false; > > this._async = true; > > this._defaultCharset = ''ISO-8859-1''; > > this._getCharset = function() { > > var charset = _defaultCharset; > > var contentType = this.getResponseHeader(''Content- > type'').toUpperCase(); > > val = contentType.indexOf(''CHARSET=''); > > if (val != -1) { > > charset = contentType.substring(val); > > } > > val = charset.indexOf('';''); > > if (val != -1) { > > charset = charset.substring(0, val); > > } > > val = charset.indexOf('',''); > > if (val != -1) { > > charset = charset.substring(0, val); > > } > > return charset; > > }; > > this.abort = function() { > > this._aborted = true; > > }; > > this.getAllResponseHeaders = function() { > > return this.getAllResponseHeader(''*''); > > }; > > this.getAllResponseHeader = function(header) { > > var ret = ''''; > > for (var i = 0; i < this._headers.length; i++) { > > if (header == ''*'' || this._headers[i].h == header) { > > ret += this._headers[i].h + '': '' + this._headers[i].v + > ''\n''; > > } > > } > > return ret; > > }; > > this.getResponseHeader = function(header) { > > var ret = getAllResponseHeader(header); > > var i = ret.indexOf(''\n''); > > if (i != -1) { > > ret = ret.substring(0, i); > > } > > return ret; > > }; > > this.setRequestHeader = function(header, value) { > > this._headers[this._headers.length] = {h:header, v:value}; > > }; > > this.open = function(method, url, async, user, password) { > > this.method = method; > > this.url = url; > > this._async = true; > > this._aborted = false; > > this._headers = []; > > if (arguments.length >= 3) { > > this._async = async; > > } > > if (arguments.length > 3) { > > opera.postError(''XMLHttpRequest.open() - user/password not > supported''); > > } > > this.readyState = 1; > > if (this.onreadystatechange) { > > this.onreadystatechange(); > > } > > }; > > this.send = function(data) { > > if (!navigator.javaEnabled()) { > > alert("XMLHttpRequest.send() - Java must be installed and > enabled."); > > return; > > } > > if (this._async) { > > setTimeout(this._sendasync, 0, this, data); > > // this is not really asynchronous and won''t execute until the > current > > // execution context ends > > } else { > > this._sendsync(data); > > } > > } > > this._sendasync = function(req, data) { > > if (!req._aborted) { > > req._sendsync(data); > > } > > }; > > this._sendsync = function(data) { > > this.readyState = 2; > > if (this.onreadystatechange) { > > this.onreadystatechange(); > > } > > // open connection > > var url = new java.net.URL(new java.net.URL > (window.location.href), this.url); > > var conn = url.openConnection(); > > for (var i = 0; i < this._headers.length; i++) { > > conn.setRequestProperty(this._headers[i].h, this._headers > [i].v); > > } > > this._headers = []; > > if (this.method == ''POST'') { > > // POST data > > conn.setDoOutput(true); > > var wr = new java.io.OutputStreamWriter(conn.getOutputStream > (), this._getCharset()); > > wr.write(data); > > wr.flush(); > > wr.close(); > > } > > // read response headers > > // NOTE: the getHeaderField() methods always return nulls for > me :( > > var gotContentEncoding = false; > > var gotContentLength = false; > > var gotContentType = false; > > var gotDate = false; > > var gotExpiration = false; > > var gotLastModified = false; > > for (var i = 0; ; i++) { > > var hdrName = conn.getHeaderFieldKey(i); > > var hdrValue = conn.getHeaderField(i); > > if (hdrName == null && hdrValue == null) { > > break; > > } > > if (hdrName != null) { > > this._headers[this._headers.length] = {h:hdrName, > v:hdrValue}; > > switch (hdrName.toLowerCase()) { > > case ''content-encoding'': gotContentEncoding = true; break; > > case ''content-length'' : gotContentLength = true; break; > > case ''content-type'' : gotContentType = true; break; > > case ''date'' : gotDate = true; break; > > case ''expires'' : gotExpiration = true; break; > > case ''last-modified'' : gotLastModified = true; break; > > } > > } > > } > > // try to fill in any missing header information > > var val; > > val = conn.getContentEncoding(); > > if (val != null && !gotContentEncoding) this._headers > [this._headers.length] = {h:''Content-encoding'', v:val}; > > val = conn.getContentLength(); > > if (val != -1 && !gotContentLength) this._headers > [this._headers.length] = {h:''Content-length'', v:val}; > > val = conn.getContentType(); > > if (val != null && !gotContentType) this._headers > [this._headers.length] = {h:''Content-type'', v:val}; > > val = conn.getDate(); > > if (val != 0 && !gotDate) this._headers[this._headers.length] > {h:''Date'', v:(new Date(val)).toUTCString()}; > > val = conn.getExpiration(); > > if (val != 0 && !gotExpiration) this._headers > [this._headers.length] = {h:''Expires'', v:(new Date(val)).toUTCString > ()}; > > val = conn.getLastModified(); > > if (val != 0 && !gotLastModified) this._headers > [this._headers.length] = {h:''Last-modified'', v:(new Date > (val)).toUTCString()}; > > // read response data > > var reqdata = ''''; > > var stream = conn.getInputStream(); > > if (stream) { > > var reader = new java.io.BufferedReader(new > java.io.InputStreamReader(stream, this._getCharset())); > > var line; > > while ((line = reader.readLine()) != null) { > > if (this.readyState == 2) { > > this.readyState = 3; > > if (this.onreadystatechange) { > > this.onreadystatechange(); > > } > > } > > reqdata += line + ''\n''; > > } > > reader.close(); > > this.status = 200; > > this.statusText = ''OK''; > > this.responseText = reqdata; > > this.readyState = 4; > > if (this.onreadystatechange) { > > this.onreadystatechange(); > > } > > if (this.onload) { > > this.onload(); > > } > > } else { > > // error > > this.status = 404; > > this.statusText = ''Not Found''; > > this.responseText = ''''; > > this.readyState = 4; > > if (this.onreadystatechange) { > > this.onreadystatechange(); > > } > > if (this.onerror) { > > this.onerror(); > > } > > } > > }; > > }; > > } > > > function startClock(namedata,rowsdata){ > alert(namedata); > setTimeout("startClock()", 2000); > getNames(namedata); > getRows(rowdata); > } > > var req; > > function getNames(namedata){ > req = new XMLHttpRequest(); > if(req){ req.onreadystatechange=processReqChange1; > try{ > req.open(''GET'', namedata); > > req.setRequestHeader(''If-Modified-Since'' ,''Sat, 1 Jan 1900 > 00:00:00 GMT''); > req.send(""); > }catch(e){ > alert(e); > } > } > } > > function getRows(rowdata){ > req = new XMLHttpRequest(); > if(req){ req.onreadystatechange=processReqChange2; > try{ > req.open(''GET'', rowdata); > req.setRequestHeader(''If-Modified-Since'' ,''Sat, 1 Jan 1900 > 00:00:00 GMT''); > req.send(""); > }catch(e){ > alert(e); > } > } > } > > function processReqChange1(){ > if(req.readyState == 4 && (req.status == 200 || req.status == 304)){ > var rows = eval(req.responseText); > var html = "<br><br><table>"; > > for(r in rows){ > if(rows[r].status=="-1") > html+="<tr><td><FONT COLOR=\"#4B7399\">"+rows[r].order+". > "+rows > [r].username+"</FONT></td></tr>"; > else if(rows[r].status=="0") > html+="<tr><td>"+rows[r].order+". > "+rows[r].username+"</td></tr>"; > else > html+="<tr><td bgcolor=\"#4B7399\"><FONT > COLOR=\"#FFFFFF\">"+rows > [r].order+". "+rows[r].username+"</td></tr>"; > } > html+="</table>"; > document.getElementById("rowsdata").innerHTML = html; > } > } > > function processReqChange2(){ > if(req.readyState == 4 && (req.status == 200 || req.status == 304)){ > var rows = eval(req.responseText); > var html=rows[0].totals+" ups for today for <b><u>"+rows[0].room > +"</b></u><br><br><table>"; > html+="<tr align=\"center\" valign=\"top\" bgcolor=\"#C0C0C0\">"; > html+="<th valign=\"top\" align=\"center\" bgcolor=\"#C0C0C0\" > nowrap>#</th>"; > html+="<th valign=\"top\" align=\"center\" bgcolor=\"#C0C0C0\" > nowrap>Day</th>"; > html+="<th valign=\"top\" align=\"center\" bgcolor=\"#C0C0C0\" > nowrap>Time</th>"; > html+="<th valign=\"top\" align=\"center\" bgcolor=\"#C0C0C0\" > nowrap>Sensor</th>"; > html+="<th valign=\"top\" align=\"center\" bgcolor=\"#C0C0C0\" > nowrap>Heads</th>"; > html+="<th valign=\"top\" align=\"center\" bgcolor=\"#C0C0C0\" > nowrap>Associate</th>"; > html+="<th valign=\"top\" align=\"center\" bgcolor=\"#C0C0C0\" > nowrap>CXL</th>"; > html+="<th valign=\"top\" align=\"center\" bgcolor=\"#C0C0C0\" > nowrap>BB</th>"; > html+="<th valign=\"top\" align=\"center\" bgcolor=\"#C0C0C0\" > nowrap>TO</th>"; > html+="<th valign=\"top\" align=\"center\" bgcolor=\"#C0C0C0\" > nowrap>DR</th>"; > html+="<th valign=\"top\" align=\"center\" bgcolor=\"#C0C0C0\" > nowrap>OK</th>"; > html+="</tr>"; > var k=-1; > for(r in rows){ > k++; > if(k>0){ > html+="<tr>"; > html+="<td>"+rows[r].dayno+"</td><td>"+rows[r].dof+"</ > td><td>"+rows[r].time+"</td><td>"+rows[r].sensor+"</td><td>"+rows > [r].hits+"</td><td>"+rows[r].assoc+"</td><td>"+"CXL"; > if(rows[r].bb==-1) > html+="</td><td bgcolor=\"#FFFFFF\">"+"BB"; > else if(rows[r].bb==1) > html+="</td><td bgcolor=\"#1F7F00\">"+"BB"; > else > html+="</td><td>"+"BB"; > if(rows[r].tor==-1) > html+="</td><td bgcolor=\"#FFFFFF\">"+"TO"; > else if(rows[r].tor==1) > html+="</td><td bgcolor=\"#1F7F00\">"+"TO"; > else > html+="</td><td>"+"TO"; > if(rows[r].dr==-1) > html+="</td><td bgcolor=\"#FFFFFF\">"+"DR"; > else if(rows[r].dr==1) > html+="</td><td bgcolor=\"#1F7F00\">"+"DR"; > else > html+="</td><td>"+"DR"; > html+="</td><td>"+"OK"+"</td>"; > html+="</tr>"; > } > } > html+="</table>"; > document.getElementById("namesdata").innerHTML = html; > } > } > > > On Jul 7, 10:34 am, Narendra sisodiya <naren.sisod...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> > wrote: > > what exactly happen , when partial loaded ? any error ? > > > > ~ N a R e N > > > > >--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Naren, Ok, in my rjs I pass it: page.call "startClock" "" "" Still, nothing happend (but no error in firebug console now) -Janna
your call is not valid , use , between arguments and method like this page.call "startClock", "", "" N A R E N On Tue, Jul 7, 2009 at 10:48 PM, JannaB <mistressjanna-PkbjNfxxIARBDgjK7y7TUQ@public.gmane.org> wrote:> > Naren, > > Ok, in my rjs I pass it: > > page.call "startClock" "" "" > > Still, nothing happend (but no error in firebug console now) -Janna > > >--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Thank you Naren. The solution proposed by Vitaly I just tried out and it works! However, I have: startClock("../../../../public/test/ggriptest/ getdata1.dat","../../../../public/test/ggriptest/getdata2.dat"); my app (this particular partial) is in G:\InstantRails\rails_apps\ggripv2\app\views\channels and the two .dat files (which contain JSON data) are at: G:\InstantRails\rails_apps\ggripv2\public\test\ggriptest Am I specifying this correctly in the parameters above? -Janna