RJS vs Javascript Template in Rails 3?

Hi all,

I start looking in unobtrusive javascript functionality in Rails 3. I
couldn’t make any different when to use RJS vs pure Javascript
template.

For example:
#RJS:
page.replace_html, ‘some_div’, :partial => ‘some_partial’

#JS
$(“some_div”).update("<%= escape_javascript(render(‘some_partial’))
%>");

Could you point me some cases when they are used?

Thanks,
Samnang

I had problem with #JS template method, so I just use the inline
javascript
page.replace_html.
The JS template wouldn’t update my DIV. Have you gotten the js template
method working?

Samnang wrote in post #949445:

Hi all,

I start looking in unobtrusive javascript functionality in Rails 3. I
couldn’t make any different when to use RJS vs pure Javascript
template.

For example:
#RJS:
page.replace_html, ‘some_div’, :partial => ‘some_partial’

#JS
$(“some_div”).update(“<%= escape_javascript(render(‘some_partial’))
%>”);

Well, you should never ever be writing ERb in your JavaScript like that.
JS files should IMHO always be static.

I lean more toward writing my JavaScript directly, at least with Rails
2. But RJS might be nice for calling certain Ajax actions.

Could you point me some cases when they are used?

Thanks,
Samnang

Best,

Marnen Laibow-Koser
http://www.marnen.org
[email protected]

On 13 October 2010 03:15, Marnen Laibow-Koser [email protected]
wrote:

#JS
$(“some_div”).update(“<%= escape_javascript(render(‘some_partial’))
%>”);

Well, you should never ever be writing ERb in your JavaScript like that.
JS files should IMHO always be static.

I’ve been looking at making a very JS heavy interface of late and it
actually requires replacing sections of the page with dynamic content.
Your take on it suggests that you could only ever return a static js
script, and therefore have no dynamic content. Is that right?

I lean more toward writing my JavaScript directly, at least with Rails
2. But RJS might be nice for calling certain Ajax actions.

The above examples merely do the same job with a cleaner syntax?

Just trying to take a look at best practices and gauge what I would
consider to be most appropriate.

RobL

The goodness of unobtrusiveness really shows when the project turns big
and
you have all your code separated, it allows easy maintenance, debugging
and
updates, imaging having all your styles in the html and the having to
change
the site’s look, lots of potential to brake code just for changing a
little
thing, same with obtrusive js.

Rob L. wrote in post #949724:

On 13 October 2010 03:15, Marnen Laibow-Koser [email protected]
wrote:

#JS
$(“some_div”).update(“<%= escape_javascript(render(‘some_partial’))
%>”);

Well, you should never ever be writing ERb in your JavaScript like that.
JS files should IMHO always be static.

I’ve been looking at making a very JS heavy interface of late and it
actually requires replacing sections of the page with dynamic content.
Your take on it suggests that you could only ever return a static js
script, and therefore have no dynamic content. Is that right?

Not at all. You can have dynamic content with static JS files (search
the list archives for more info – I go through this discussion every
couple of weeks :slight_smile: ). My usual method is to have the JS read a hidden
element that Rails puts in the DOM.

Best,

Marnen Laibow-Koser
http://www.marnen.org
[email protected]