back-end vs. front-end calculation

T

The alMIGHTY N

Hi all,

Let's say I have a simple math formula:

sum (x * y / 1000) / (sum z / 1000)

I have to do this across 50 items, each with an x, y and z value, when
the page first loads AND when a user modifies any of the x, y and z
values.

Needless to say, I need to have a Javascript function that handles
this formula to deal with the modifications.

However, I have a choice on page load to either have the database in
which this data is initially stored perform this calculation or to
have the same Javascript function that will handle the onchange event
handle the initial calculation as well.

a) Would it be noticeably faster to do it on the database side?

b) Would that difference be enough to warrant having redundancy on the
calculation?

One of my co-workers feels that it's always better to do calculations
on the back-end period, no exceptions. My other co-worker feels that
it's bad to have the same calculation in two different places,
especially when one place is back end and the other front end, because
that adds to the list of things we need to handle for future
maintenance.

What's your opinion on which is the better way to do things?
 
E

Evertjan.

The alMIGHTY N wrote on 02 apr 2007 in comp.lang.javascript:
Hi all,

Let's say I have a simple math formula:

sum (x * y / 1000) / (sum z / 1000)

sum (x * y / 1000) / sum( z / 1000) ???


sum? That is not javascript! Is that a function?
I have to do this across 50 items, each with an x, y and z value, when
the page first loads AND when a user modifies any of the x, y and z
values.

Needless to say, I need to have a Javascript function that handles
this formula to deal with the modifications.

However, I have a choice on page load to either have the database in
which this data is initially stored perform this calculation or to
have the same Javascript function that will handle the onchange event
handle the initial calculation as well.

a) Would it be noticeably faster to do it on the database side?

That depends on how often you want to fetch the data from the database
and where they are stored then.
b) Would that difference be enough to warrant having redundancy on the
calculation?

What is "redundancy on the calculation"?
One of my co-workers feels that it's always better to do calculations
on the back-end period, no exceptions. My other co-worker feels that
it's bad to have the same calculation in two different places,
especially when one place is back end and the other front end, because
that adds to the list of things we need to handle for future
maintenance.

There are 3, not 2 places to handle things, if I understand your Q
enough:

1 in the serverside querystring of the database [what engine?]
2 in serverside jscript or vbscript [talking ASP]
3 javascript on the client/browser

What does your co-workers understand under front and back end?
What's your opinion on which is the better way to do things?

Depends on your preferences, your joy in coding, and if those two do not
suffice, trying out and measuring the 3 or more possible ways.

My personal favorite is to code as I like when I come to it.
 
T

The alMIGHTY N

The alMIGHTY N wrote on 02 apr 2007 in comp.lang.javascript:




sum (x * y / 1000) / sum( z / 1000) ???

sum? That is not javascript! Is that a function?

I was just relating the math formula itself. That's obviously not
code, haha.
That depends on how often you want to fetch the data from the database
and where they are stored then.

The data is retrieved from the database upon page load. After that,
all calculation is done on the page. After any number of
calculations / modifications, the user can choose to save the data to
the database. That doesn't reload the page, however. Basically, the
user would have to refresh the page explicitly to load data from the
database again.
What is "redundancy on the calculation"?

What I meant was to have the same calculation in two different places
- back end in the database *and* front end in the Javascript.
One of my co-workers feels that it's always better to do calculations
on the back-end period, no exceptions. My other co-worker feels that
it's bad to have the same calculation in two different places,
especially when one place is back end and the other front end, because
that adds to the list of things we need to handle for future
maintenance.

There are 3, not 2 places to handle things, if I understand your Q
enough:

1 in the serverside querystring of the database [what engine?]
2 in serverside jscript or vbscript [talking ASP]
3 javascript on the client/browser

Only two places: on the back end, there is a stored procedure in the
database that calculates the formula and then spits out the resulting
number into XML; on the front end, the HTML generated by the XSL
attached to the aforementioned XML contains Javascript that has that
calculation.

Another thing... the XML generated by the back end functions also
contains x, y and z, which is why even on the initial page load, the
Javascript could easily run the calculation instead of doing it on the
back end... the question is whether it should.
What does your co-workers understand under front and back end?

Actually, both of my co-workers are back end developers, dealing in
Java. I'm the sole front-end developer in the project.
Depends on your preferences, your joy in coding, and if those two do not
suffice, trying out and measuring the 3 or more possible ways.

Well, we've already coded on both the back end and the front end. My
co-workers are just debating whether to use the back end code at all,
and I'm caught in the middle. :-(

Personally, I think the difference in speed is negligible if it's even
there. The page seems to load up fast no matter what option we go
with.

However, the one who believes entirely in back end coding keeps
insisting that her way is the best because the calculation on the back
end takes in the scale of milliseconds whereas the calculation on the
front end takes on the scale of seconds (or so she claims but maybe
she's just trying to defend her work haha).

Anyway, just looking for opinions, s'all. I don't know enough about
back end programming to be able to say whether it's any faster or
slower than what could be done on Javascript. I imagine it is faster
to some degree, but not to a degree that's noticeable to a user,
especially with such a simple calculation.

Cheers!
 
D

Dr J R Stockton

In comp.lang.javascript message <[email protected]
oglegroups.com>, Mon, 2 Apr 2007 09:47:34, The alMIGHTY N
Let's say I have a simple math formula:

sum (x * y / 1000) / (sum z / 1000)

I have to do this across 50 items, each with an x, y and z value, when
the page first loads AND when a user modifies any of the x, y and z
values.

If I understand your calculation adequately, it will take insignificant
time in comparison with the time taken to fetch and load the page. To
verify that, put the calculation in an outer loop which repeats it 10 or
100 or more times, to make the delay measurable.

If your talents had matched your appellation, you would have thought of
that.

Wherever possible, things should be done only once. That includes
writing and maintaining such code - so do it on the client.
 
E

Evertjan.

The alMIGHTY N wrote on 02 apr 2007 in comp.lang.javascript:
However, the one who believes entirely in back end coding keeps
insisting that her way is the best because the calculation on the back
end takes in the scale of milliseconds whereas the calculation on the
front end takes on the scale of seconds (or so she claims but maybe
she's just trying to defend her work haha).

Anyway, just looking for opinions, s'all. I don't know enough about
back end programming to be able to say whether it's any faster or
slower than what could be done on Javascript. I imagine it is faster
to some degree, but not to a degree that's noticeable to a user,
especially with such a simple calculation.

I do not like the wording back-end and front-end, because the meaning is
not clear unless you, as you did, explain it specifically.

You seem to mean serverside or clientside.

Back-end / front-end could also mean database / serverscripting,
methinks.

The good things about severside are, that the user cannot interfere with
the coding and the influence of different browsers and javascript
availability are absent.

The bad thing about severside is that you do not make use of the
"distributed computing power" gain when a multitude of users want to
calculate at the same time.
Personally, I think the difference in speed is negligible if it's even
there.

The speed difference is not something to contemplate, but should and can
easily be measured.

In the end, it both depends on specific demands and possibilities and is
a very personal choice all the same.
 
T

The alMIGHTY N

In comp.lang.javascript message <[email protected]
oglegroups.com>, Mon, 2 Apr 2007 09:47:34, The alMIGHTY N




If I understand your calculation adequately, it will take insignificant
time in comparison with the time taken to fetch and load the page. To
verify that, put the calculation in an outer loop which repeats it 10 or
100 or more times, to make the delay measurable.

If your talents had matched your appellation, you would have thought of
that.

My appellation? Haha. My name is just a name - about as meaningless
except as a common word as that which you misinterpreted it to
represent.
 

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,482
Members
44,901
Latest member
Noble71S45

Latest Threads

Top