www.webdeveloper.com
Results 1 to 5 of 5

Thread: arrays in script file

  1. #1
    Join Date
    Jun 2012
    Posts
    3

    arrays in script file

    i have a function in a js file to read the contents from a xml file in an array , this works.
    it produces an array which is reproduced each 6 seconds on the html page by calling the function from the js file and shown in a graph on a html page .

    so far so good.

    but the number of points shown in the graph grows infinite.



    so i decided to add a function to the js file to slice the array:

    Code:
    sliceRowLogNodeArray: function () {
    
            Spline.shownRLNA = [];  // set 0 for iteration
    
            if (Spline.rowLogNodeArray.length > 50) {
    
               
                Spline.shownRLNA = Spline.rowLogNodeArray.slice(Spline.rowLogNodeArray.length - 50);
            }
    
            else {
    
                Spline.shownRLNA = Spline.rowLogNodeArray;
    
            }
    
    
            return Spline.shownRLNA
    
          
        },
    the code to get the xml info:

    Code:
    readxml: function () {
    
            Spline.circles = [];
            Spline.rowLogNodeArray = [];
            Spline.shownRLNA = [];
    
            if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
                xmlhttp = new XMLHttpRequest();
            }
            else {// code for IE6, IE5
                xmlhttp = new ActiveXObject("Microsoft.XMLDOM");
            }
    
            xmlhttp.open("GET", "http://localhost/loggingandcharting/Data/haamstede.xml", false);
            xmlhttp.send();
            xmlDoc = xmlhttp.responseXML;
    
            el = xmlDoc.getElementsByTagName("Log");
            testxml = el[0].getAttribute("Name");
    
            rowLogNodeList = el[0].getElementsByTagName("rowlog");
            le1 = rowLogNodeList.length;
    
    
            $.each(rowLogNodeList, function (i) {
    
    
    
                rowlog = rowLogNodeList[i];
                rowlogattributes = [];
    
                rowlogattributes.push(Spline.replacecommmawithpoint(rowlog.getAttribute('date')));
                rowlogattributes.push(Spline.replacecommmawithpoint(rowlog.getAttribute('time')));
                rowlogattributes.push(Spline.replacecommmawithpoint(rowlog.getAttribute('thh')));
                rowlogattributes.push(Spline.replacecommmawithpoint(rowlog.getAttribute('tkh')));
                rowlogattributes.push(Spline.replacecommmawithpoint(rowlog.getAttribute('tsh')));
                rowlogattributes.push(Spline.replacecommmawithpoint(rowlog.getAttribute('vah')));
    
                Spline.rowLogNodeArray.push(rowlogattributes);
    
    
    
    
            });
    
    
    
    
        }, // function readxml


    but iteratting this give a good Spline.rowLogNodeArray
    but the sliced arrray Spline.shownRLNA becomes undefined in the javascript on the html page

    and i dont understand why

  2. #2
    Join Date
    Jul 2011
    Posts
    131
    Try to declare it as a global variable, not in a function scope.

  3. #3
    Join Date
    Jun 2012
    Posts
    3
    the variables are global in spline

    the return function works,

    Code:
    Spline.chartpointsxml(ctx0, Spline.sliceRowLogNodeArray())

    but not

    Code:
    Spline.chartpointsxml(ctx0,Spline.shownRLNA)
    and this works well, two arrays defined in the same place one is present one is undefined ?:

    Code:
    Spline.chartpointsxml(ctx0,Spline.rowLogNodeArray)
    why do i have to slicethe priginal array each time i need the sliced array ?










    Code:
    Spline = {
    
    
    
        //canvas: document.getElementById('canvas'),
        //ctx : canvas.getContext('2d'),
    
        bezcircles: [],  // on page and in this library $.spline.bezcircles
        circles: [],
        controlcircles: [],
        rowLogNodeArray: [], //RLNA the array with all the measurements from xml file
        shownRLNA: [],  // the part of the complete array shown in the canvas because if there are to may it doenst fit on webpage
    
        Point: function (x, y) {
            this.x = x;
            this.y = y;
            return this;
        },
    
        VerticalLine: function (x) {
            this.x = x;
    
        },

  4. #4
    Join Date
    Jul 2011
    Posts
    131
    Show your all js code please.

  5. #5
    Join Date
    Jun 2012
    Posts
    3
    my js code in zip otherwise to big
    Attached Files Attached Files

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center



Recent Articles