Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Javascript > back-end vs. front-end calculation

Reply
Thread Tools

back-end vs. front-end calculation

 
 
The alMIGHTY N
Guest
Posts: n/a
 
      04-02-2007
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?

 
Reply With Quote
 
 
 
 
Evertjan.
Guest
Posts: n/a
 
      04-02-2007
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.

--
Evertjan.
The Netherlands.
(Please change the x'es to dots in my emailaddress)
 
Reply With Quote
 
 
 
 
The alMIGHTY N
Guest
Posts: n/a
 
      04-02-2007
On Apr 2, 1:07 pm, "Evertjan." <(E-Mail Removed)> wrote:
> 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 was just relating the math formula itself. That's obviously not
code, haha.

> > 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.


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.

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

>
> 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.

> > 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.


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!

> My personal favorite is to code as I like when I come to it.
>
> --
> Evertjan.
> The Netherlands.
> (Please change the x'es to dots in my emailaddress)



 
Reply With Quote
 
Dr J R Stockton
Guest
Posts: n/a
 
      04-02-2007
In comp.lang.javascript message <(E-Mail Removed)
oglegroups.com>, Mon, 2 Apr 2007 09:47:34, The alMIGHTY N
<(E-Mail Removed)> posted:

>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.

--
(c) John Stockton, Surrey, UK. ?@merlyn.demon.co.uk Delphi 3? Turnpike 6.05
<URL:http://www.merlyn.demon.co.uk/> TP/BP/Delphi/&c., FAQqy topics & links;
<URL:http://www.bancoems.com/CompLangPascalDelphiMisc-MiniFAQ.htm> clpdmFAQ;
<URL:http://www.borland.com/newsgroups/guide.html> news:borland.* Guidelines
 
Reply With Quote
 
Evertjan.
Guest
Posts: n/a
 
      04-03-2007
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.

--
Evertjan.
The Netherlands.
(Please change the x'es to dots in my emailaddress)
 
Reply With Quote
 
The alMIGHTY N
Guest
Posts: n/a
 
      04-03-2007
On Apr 2, 4:22 pm, Dr J R Stockton <(E-Mail Removed)> wrote:
> In comp.lang.javascript message <(E-Mail Removed)
> oglegroups.com>, Mon, 2 Apr 2007 09:47:34, The alMIGHTY N
> <(E-Mail Removed)> posted:
>
> >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.


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.

> Wherever possible, things should be done only once. That includes
> writing and maintaining such code - so do it on the client.
>
> --
> (c) John Stockton, Surrey, UK. ?(E-Mail Removed) Delphi 3? Turnpike 6.05
> <URL:http://www.merlyn.demon.co.uk/> TP/BP/Delphi/&c., FAQqy topics & links;
> <URL:http://www.bancoems.com/CompLangPascalDelphiMisc-MiniFAQ.htm> clpdmFAQ;
> <URL:http://www.borland.com/newsgroups/guide.html> news:borland.* Guidelines



 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
what subnet calculation to use for 70-216 jmiddleton67@hotmail.com Microsoft Certification 3 04-07-2005 01:52 PM
CRC polynomal calculation Runar Gjelsvik VHDL 2 04-29-2004 09:08 AM
power calculation in fpga sunil VHDL 2 02-11-2004 12:16 PM
bgp weight calculation Glenn Cisco 4 10-29-2003 02:46 AM
calculation in string Daniel Perl 7 09-10-2003 07:33 PM



Advertisments