Rendering javascript at the server side level. A good or bad idea?
Posted
by davidhong
on Stack Overflow
See other posts from Stack Overflow
or by davidhong
Published on 2010-05-17T07:04:15Z
Indexed on
2010/05/17
7:10 UTC
Read the original article
Hit count: 374
I want to make it clear first: This isn't a question in relation to server-side Javascript or running Javascript server side. This is a question regarding rendering of Javascript code (which will be executed on the client-side) from server-side code.
Having said that, take a look at below ASP.net code for example:
hlRemoveCategory.Attributes.Add("onclick", "return confirm('Are you sure you want to delete this?');")
This is prescribing the client-side onclick
event on the server-side.
As oppose to:
$('a[rel=remove]').bind('click', function(event) {
return confirm('Are you sure you want to delete this?');
}
Now the question I want to ask is: What is the benefit of rendering javascript from the server-side code? Or the vice-versa?
I personally prefer the second way of hooking up client-side UI/behaviour to HTML elements for the following reasons:
- Server-side does what ever it needs to already, including data-validation, event delegation and etc; and
- What server-side sees as an event is not necessarily the same process on the client-side. i.e., there are plenty more events on client-side (just look at custom events); and
- What happens on client-side and on server-side, during an event, could be completely irrelevant and decoupled; and
- What ever happens on client-side happens on client-side, there is no need for the server to know. Server should process and run what is given to them, how the process comes to life is not really up to them to decide in the event of the client-side events; and so and so forth.
These are my thoughts obviously. I want to know what others think and if there has been any discussions on this topic.
Topics branching from this argument can reach:
- Code management: is it easier to render everything from server-side?
- Separation of concern: is it easier if client-side logic is separated to server-side logic?
- Efficiency: which is more efficient both in terms of coding and running?
At the end of the day, I am trying to move my team to go towards the second approach. There are lot of old guys in this team who are afraid of this change. I just wish to convince them with the right facts and stats.
Let me know your thoughts.
© Stack Overflow or respective owner