Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.javascript > #31216

Re: HTML/Javascript Data Interfaces

From Thomas 'PointedEars' Lahn <PointedEars@web.de>
Newsgroups comp.lang.javascript
Subject Re: HTML/Javascript Data Interfaces
Date 2016-08-30 12:45 +0200
Organization PointedEars Software (PES)
Message-ID <1995644.ElGaqSPkdT@PointedEars.de> (permalink)
References <MPG.322ceda719712dcf9896ce@news.eternal-september.org>

Show all headers | View raw


MikeCopeland wrote:

>    I have inherited a Web application that's comprised of a set of 10
> HTML/Javascript apps and a "main" page that links to the 10 HTML code
> pages.  Each of the 10 pages has a corresponding Javascript code page
> that has 2 functions.  I'd like to combine and compact all this code
> into fewer source files (for maintenence), as well as reduce redundant
> code.
>    My thought is to have a single Javascript file (all processing is
> identical, but the data array is different for each).  In order to do so
> I must declare the array values in the calling HTML (I'm unsure how to
> do this)

Simplest solution:

  <script type="text/javascript">
    var distances = […];
  </script>
  <script type="text/javascript" src="…"></script>

Better solution: Pass the array as an argument to the function.

> and call the single Javascript cocde with an additional argument (I have
> no idea how to do this).

RTFFAQ or employ someone with the expertise.  There are *starving* 
*talented* developers out there.

> […]
>   <input type="button" value="Compute Distance"
>        onClick="Process1(document.Start.Start_Point,
> document.End.End_Point, this.form, SOMETHING)">

Should probably be

  <input type="button" value="Compute Distance"
    onclick="Process1(document.forms['Start'].elements['Start_Point'],
      document.forms['End'].elements['End_Point'], this.form, SOMETHING)">

at which point you should find a way to get rid of the spaghetti code.  

Do you really need three forms?
 
>    The Web site is: http://mrc5305.com/rp_history/canals.htm

So I guessed right.  The person writing this had no clue what they were 
doing.  You only need one form, and then

  <input type="button" value="Compute Distance"
    onclick="Process1(this.form.elements['Start_Point'],
      this.form.elements['End_Point'], this.form, SOMETHING)">

which then reduces to

  <input type="button" value="Compute Distance"
    onclick="Process1(this.form, SOMETHING)">

and ultimateily to

  <input type="button" value="Compute Distance"
      onClick="Process1(this, SOMETHING)">

because the logic should be in the function (which should be renamed 
“process1” as it is not a constructor, probably something more descriptive).
Unless the forms are that dissimilar that this is not an option.

>    I hope I've made my query clear.  Please advise.  TIA
                                       ^^^^^^^^^^^^^^^^^^^
Start from scratch.  You’re welcome.

> ////////////////////////////////////////////////////////////////////////
>     var Total = 0.0;
> function roundOff(value, precision)
> {
>     var prior    = value;                         // save incoming value
>     value        = ""+value                    //convert value to string

“value” probably is a String already.  But since “value” is *only* used in a 
*multiplication* operation, what is the point of converting it to *String*?

> […]

Ouch.  There are so many things wrong with this code that I do not know 
where to begin.

> function Process1(S,E, form1)
> {
>     Distances = new Array(0.57, 0.45, 0.62, 0.79, 0.52, 1.14, 0.36,
> 0.24,
>                      0.55, 1.07, 1.12, 0.98, 1.00, 1.09, 0.71, 0.45,
>                      1.33, 1.14, 1.02, 1.14);
> […]
>     w1    = ""+Total*1+" Miles";

<facepalm/>

  var w1 = Total + " Miles";

>   form1.p2p.value = w1;

See above.

>   form1.loop.value = w1;

See above.

>     return;
      ^^^^^^^
> }  // Process1
  ^
<facepalm/>

I leave the rest of the code review to JSHint:

<http://jshint.com/>

> ---
> This email has been checked for viruses by Avast antivirus software.
> https://www.avast.com/antivirus

This was not an e-mail; please disable the spam.

Also, a space character is missing in your name.  Inserting it in the right 
place will increase the number of people reading you and willing to help 
you.

-- 
PointedEars
FAQ: <http://PointedEars.de/faq> | SVN: <http://PointedEars.de/wsvn/>
Twitter: @PointedEars2 | ES Matrix: <http://PointedEars.de/es-matrix>
Please do not cc me. / Bitte keine Kopien per E-Mail.

Back to comp.lang.javascript | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

HTML/Javascript Data Interfaces MikeCopeland <mrc2323@cox.net> - 2016-08-28 12:47 -0700
  Re: HTML/Javascript Data Interfaces Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-08-28 21:12 +0100
    Re: HTML/Javascript Data Interfaces MikeCopeland <mrc2323@cox.net> - 2016-08-28 15:00 -0700
  Re: HTML/Javascript Data Interfaces Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-08-30 12:45 +0200
    Re: HTML/Javascript Data Interfaces John Harris <niam@jghnorth.org.uk.invalid> - 2016-08-30 19:33 +0100

csiph-web