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


Groups > comp.lang.javascript > #22438

Re: Compressing js file?

From emf <emfril@gmail.com>
Newsgroups comp.lang.javascript
Subject Re: Compressing js file?
Date 2013-12-27 15:32 -0500
Organization Aioe.org NNTP Server
Message-ID <l9ko3r$vdt$1@speranza.aioe.org> (permalink)
References (1 earlier) <9b7e78ae-b456-42bb-bab4-d5ac2d10650b@googlegroups.com> <l9iq8h$hsi$1@speranza.aioe.org> <XnsA2A364854EA0Eeejj99@194.109.133.133> <l9jumc$rbe$1@speranza.aioe.org> <XnsA2A3ACC496F85eejj99@194.109.133.133>

Show all headers | View raw


On 2013-12-27 10:59 Evertjan. wrote:
> emf <emfril@gmail.com> wrote on 27 dec 2013 in comp.lang.javascript:
>
>> On 2013-12-27 03:52 Evertjan. wrote:
>>> emf <emfril@gmail.com> wrote on 27 dec 2013 in comp.lang.javascript:
>>>
>>>>        function leapDay(yyyy) {
>>>>            var lDay;
>>>>            lDay = ((yyyy % 4 === 0 && yyyy % 100 !== 0) || yyyy % 400 ===
>>>>              0) ? 1 : 0;
>>>>            return lDay;
>>>>          }
>>>
>>> Better call this isLeapYear(y),
>>> [I presume that is what you ment]
>>> use the Javascript Date object,
>>> and have it return true/false:
>>> [warning: Javascript Januari = month 0]
>>>
>>> function isLeapYear(y) {
>>>      return !(new Date(y, 1, 29).getMonth()-1);
>>> };
>>>
>>>
>>>>          function isValid(yyyy, mm, dd) {
>>>>            var valid;
>>>>            if (yyyy > 0 && mm > 0 && mm <= 12 && dd > 0 && dd <= 31
>>>>              && !(dd === 31 && (mm === 4 || mm === 6 || mm === 9 ||
>>>>              mm === 11)) && !(mm === 2 && dd > 28 + leapDay(yyyy))) {
>>>>              valid = true;
>>>>            } else {
>>>>              valid = false;
>>>>            }
>>>>            return valid;
>>>>          }
>>>
>>> same objection to dubious function naming
>>> and lack of possible compactness here:
>>>
>>> function isValidDate(y, m, d) {
>>>      var t = new Date(y, m-1, d);
>>>      return t.getMonth()+1 == m  &&  t.getDate() == d;
>>> };
>>>
>>> if you prefer,
>>> [and if you still need the isLeapDayYear at all?]
>>> you could now also do:
>>>
>>> function isLeapYear(y) {
>>>      return isValidDate(y, 2, 29);
>>> };
>>
>> I first wrote my date subroutines in QBasic in the early '90s soon after
>> taking a 1 credit course at a Community College. I've kept updating them
>> as my understanding of programming changed over the years, as I do with
>> the code of my webpages. Their latest reincarnation is in the JavaScript
>> program:
>>
>> https://files.nyu.edu/emf202/public/js/dateCalculator.html
>>
>> which still works perfectly well and it has historical importance for
>> me, besides presenting a historian's view on the issue. I haven't,
>> however, updated the page for some time, and I am well aware I need to
>> do it, because since I wrote it I've learned Java, which modified my
>> views for variable names etc. a lot.
>>
>> Every time I visit this newsgroup and the issue comes up, Dr. John
>> Stockton always finds some (valid) reason to express his dissatisfaction
>> with my program, and I've come to accept it as an inevitable fact of life.
>>
>> I wish I would delve now on your suggestions, but it will have to wait
>> until I decide to sit down and revise the whole date program.
>
> Dear Eustace,
>
> Then why do you post those functions, if not to discuss them in this
> discussion group?

You are right. I made a mistake. I should have included just 1 line in 
the code:

<script type="text/javascript" src="dateCalculations.js"></script>

so that I wouldn't inadvertently have shifted the focus away from the 
immediate problem. Here is the revised code with 3 new alerts:

<!DOCTYPE html>
<html>
   <head><meta charset="utf-8" />
     <title>Read File</title>
     <script type="text/javascript" src="dateCalculations.js"></script>
     <script type="text/javascript">

       var reader, ephem = [];
       reader = new XMLHttpRequest();

       function ephemArray(data) {
         var i, j, birthday, saturn, uranus;
         for (i = 0; i < data.length / 22; i += 1) {
           ephem[i] = [];
         }
         for (i = 0; i < data.length / 22; i += 1) {
           j = i * 22;
           birthday = data.substr(j, 8);
           saturn = data.substr(j + 9, 5);
           uranus = data.substr(j + 15, 5);
           ephem[i][0] = birthday;
           ephem[i][1] = saturn;
           ephem[i][2] = uranus;
         }
         alert("1 " + ephem.length);
       }

       function loadData() {
         var data;
         if(reader.readyState === 4) {
           data = reader.responseText;
           ephemArray(data);
         }
       }

       function loadFile() {
         reader.open('get', 'ephemeris.csv', true);
         reader.send(null);
       }

       function findBDay() {
         var yyyy, mm, dd, yyyyS, mmS, ddS, birthday, i;
         yyyy = +document.dataForm.yField.value;
         mm = +document.dataForm.mField.value;
         dd = +document.dataForm.dField.value;
         if ( ((yyyy < 1900) || (yyyy > 2049)) || (!isValid(yyyy, mm,
           dd)) ) {
           i = -1;
         } else {
           yyyyS = yyyy.toString();
           mmS = (mm < 10) ? "0" + mm : mm;
           ddS = (dd < 10) ? "0" + dd : dd;
           document.dataForm.mField.value = mmS;
           document.dataForm.dField.value = ddS;
           birthday = yyyyS + mmS + ddS;
alert("3 " + ephem.length);
           for (i = 0; i < ephem.length; i += 1) {
             if (birthday === ephem[i][0]) {
               break;
             }
           }
         }
         return i;
       }

       function findBirthData() {
         var bDay;
         loadFile();
         reader.onreadystatechange = loadData;
alert("2 " + ephem.length);
         bDay = findBDay();
         if (bDay >= 0) {
           document.dataForm.outputArea.value +=
             "\n" + ephem[bDay][0] + " " + ephem[bDay][1] + " " +
             ephem[bDay][2];
         } else {
           document.dataForm.outputArea.value +=
             "\n" + "Invalid entry";
         }
       }
     </script>
     </head>
     <body onLoad="document.dataForm.outputArea.value='';">
       <form name="dataForm" action="">
         Enter birthday (yyyy-m-d):
         <input type="text" name="yField" value="" size=4> -
         <input type="text" name="mField" value="" size=2> -
         <input type="text" name="dField" value="" size=2>
         <input type="button" value="  Find  "
           onclick="findBirthData()">
         <textarea name="outputArea" rows="16" cols="43"></textarea></td>
       </form>
     </body>
</html>

I have included 3 alerts to get the ephem.length. In alert 1 the length 
is given correctly as 54787. In alert 2, before calling the findBDay 
functions it has become 0! In alert 3, inside the bDay function, it has 
reverted to 54787.

In the chart below - means that the alert has been commented out. OK 
means that I get results without having to click again on the button.

alert 1    alert 2    alert 3    results
54787      0          54787      OK
-          0          54787      OK
54787      -          0          OK
54787      0          -          OK
-          -          0          OK
-          0          -          OK
-          -          0          OK
-          -          -          !OK

So if any one alert is executed, we get results with the first click.

Alert 1 always gives 54787.

Alert 2 always gives 0.

Alert 3 gives 54787 if alert 2 has execute before, otherwise it gives 0.

We get results on the first click if any of the 3 alerts has been executed.

Can anybody make sense out of this? I cannot.

Eustace

-- 
Google's top Spherical Triangle Calculator search result!
https://files.nyu.edu/emf202/public/js/spherical.html

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


Thread

Compressing js file? emf <emfril@gmail.com> - 2013-12-23 14:31 -0500
  Re: Compressing js file? Joao Rodrigues <groups_jr-1@yahoo.com.br> - 2013-12-23 22:08 -0200
  Re: Compressing js file? "Michael Haufe (TNO)" <tno@thenewobjective.com> - 2013-12-23 16:40 -0800
    Re: Compressing js file? emf <emfril@gmail.com> - 2013-12-24 13:23 -0500
    Re: Compressing js file? emf <emfril@gmail.com> - 2013-12-26 21:56 -0500
      Re: Compressing js file? "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2013-12-27 09:52 +0100
        Re: Compressing js file? emf <emfril@gmail.com> - 2013-12-27 08:18 -0500
          Re: Compressing js file? "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2013-12-27 16:59 +0100
            Re: Compressing js file? emf <emfril@gmail.com> - 2013-12-27 15:32 -0500
              Re: Compressing js file? emf <emfril@gmail.com> - 2013-12-28 15:12 -0500
                Re: Compressing js file? emf <emfril@gmail.com> - 2014-01-01 02:17 -0500
        Re: Compressing js file? Dr J R Stockton <reply1300@merlyn.demon.co.uk.invalid> - 2013-12-28 20:20 +0000
      XHR with timing issues (was: Compressing js file?) Christoph Michael Becker <cmbecker69@arcor.de> - 2013-12-27 22:33 +0100
        Re: XHR with timing issues (was: Compressing js file?) Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2013-12-27 23:26 +0100
          Re: XHR with timing issues Christoph Michael Becker <cmbecker69@arcor.de> - 2013-12-28 12:08 +0100
            Re: XHR with timing issues emf <emfril@gmail.com> - 2013-12-28 09:04 -0500
  Re: Compressing js file? wolfgang zeidler <invalid@invalid.invalid> - 2013-12-27 22:33 +0100
    Re: Compressing js file? emf <emfril@gmail.com> - 2013-12-28 00:16 -0500
      Re: Compressing js file? "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2013-12-28 11:13 +0100
        Re: Compressing js file? emf <emfril@gmail.com> - 2013-12-28 11:26 -0500
          Re: Compressing js file? emf <emfril@gmail.com> - 2013-12-28 13:53 -0500
            Re: Compressing js file? "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2013-12-28 21:00 +0100
              Re: Compressing js file? emf <emfril@gmail.com> - 2013-12-29 21:47 -0500
                Re: Compressing js file? "Michael Haufe (TNO)" <tno@thenewobjective.com> - 2013-12-31 14:05 -0800
                Re: Compressing js file? emf <emfril@gmail.com> - 2014-01-01 02:50 -0500
                Re: Compressing js file? "Michael Haufe (TNO)" <tno@thenewobjective.com> - 2014-01-01 01:16 -0800
                Re: Compressing js file? emf <emfril@gmail.com> - 2014-01-01 08:13 -0500
                Re: Compressing js file? Tim Streater <timstreater@greenbee.net> - 2014-01-01 14:17 +0000
                Re: Compressing js file? "Michael Haufe (TNO)" <tno@thenewobjective.com> - 2014-01-01 15:31 -0800
                Re: Compressing js file? emf <emfril@gmail.com> - 2014-01-01 18:38 -0500
                Re: Compressing js file? "Michael Haufe (TNO)" <tno@thenewobjective.com> - 2014-01-01 15:45 -0800
                Re: Compressing js file? emf <emfril@gmail.com> - 2014-01-02 11:43 -0500
                Re: Compressing js file? "Michael Haufe (TNO)" <tno@thenewobjective.com> - 2014-01-02 09:34 -0800
                OT: Compressing js file? Christoph Michael Becker <cmbecker69@arcor.de> - 2014-01-02 19:52 +0100
                Re: Compressing js file? emf <emfril@gmail.com> - 2014-01-03 07:19 -0500
                Re: Compressing js file? emf <emfril@gmail.com> - 2014-01-03 07:31 -0500
                Re: Compressing js file? Tim Streater <timstreater@greenbee.net> - 2014-01-02 09:14 +0000
                Re: Compressing js file? Denis McMahon <denismfmcmahon@gmail.com> - 2014-01-01 16:25 +0000
                Re: Compressing js file? "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2014-01-01 21:36 +0100
          Re: Compressing js file? wolfgang zeidler <invalid@invalid.invalid> - 2013-12-29 20:06 +0100
            Re: Compressing js file? wolfgang zeidler <invalid@invalid.invalid> - 2013-12-29 20:27 +0100
        Re: Compressing js file? Dr J R Stockton <reply1300@merlyn.demon.co.uk.invalid> - 2013-12-29 18:02 +0000
          Re: Compressing js file? "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2013-12-30 18:17 +0100
            Re: Compressing js file? John Harris <niam@jghnorth.org.uk.invalid> - 2013-12-31 10:52 +0000
            Re: Compressing js file? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2013-12-31 13:38 +0000
              Re: Compressing js file? John Harris <niam@jghnorth.org.uk.invalid> - 2013-12-31 15:02 +0000
                Re: Compressing js file? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2014-01-01 16:42 +0000
                Re: Compressing js file? Dr J R Stockton <reply1400@merlyn.demon.co.uk.invalid> - 2014-01-01 21:32 +0000
            Re: Compressing js file? Dr J R Stockton <reply1300@merlyn.demon.co.uk.invalid> - 2013-12-31 21:44 +0000

csiph-web