Announcement

Collapse
No announcement yet.

Filtering Freezes / Hangs

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Filtering Freezes / Hangs

    I'm currently trying to put together a small filtering-driven store in SellerDeck 2013

    http://dev.randomriver.net/csc/saili...ing-trips.html

    However, clicking on any of the search filters causes the 'Loading' graphic to come up and then... nothing.

    I have implemented http://community.sellerdeck.com/showthread.php?t=53920 to try and get my filtered results looking OK, but the same thing happens with a default actinicsearch.js

    Any thoughts gratefully accepted.
    Cheers

    Chris Dicken
    ====================
    Random River Web Design - Sellerdeck Ecommerce Stores and Upgrades

    #2
    It's throwing a "SyntaxError: parseJSON".

    This is because the URL that the AJAX calls to load in the values is:

    http://dev.randomriver.net/cgi-bin/s...=1363778726031

    Which is returning a server 500 error.
    Compact and repair/refresh job?
    Fergus Weir - teclan ltd
    Ecommerce Digital Marketing

    SellerDeck Responsive Web Design

    SellerDeck Hosting
    SellerDeck Digital Marketing

    Comment


      #3
      Whenever you click any filtering option a JavaScript error parseJSON occurs. This is coming from actinicextras.js the function starting at

      // The following block implements the string.parseJSON method

      This is probably being called from the massive (nearly 5,000 lines of JavaScript) in actinicsearch.js.
      And there's another 3000 lines in actinicextras.js. A nightmareish amount of JavaScript to debug.
      Not to mention the many thousands of lines of Perl that V12 added.

      The forum rules against profanity prevent me from clearly expressing what I think about this complexity.

      P.S. My Sorted Products / Sections / Search results (which can also do filtering) uses jQuery and is only 200 lines of JavaScript and needs no Perl code at all!
      Norman - www.drillpine.biz
      Edinburgh, U K / Bitez, Turkey

      Comment


        #4
        Fergus - thanks for the tip, but no dice. I've also reverted to a default actinicsearch.js and default layouts for everything on the section page and nothing happens (except the design breaks)

        Norman - it sounds like your feelings on filtering match mine.

        OK - just wanted to confirm there wasn't anything quick and easy I could do to fix this.
        Cheers

        Chris Dicken
        ====================
        Random River Web Design - Sellerdeck Ecommerce Stores and Upgrades

        Comment


          #5
          Firefox error console points to the script where it says "If the text is not JSON parseable, then a SyntaxError is thrown." Could it be a character issue. You have a couple of filtering options named with / and + characters, or products with non alphabetical and numerical text. Also test adding the characters to the search setting valid characters.
          Peblaco

          Comment


            #6
            Chris, it seems that there is an error in the Perl scripts. Can you take a look at your error.err file to see what is going on?

            If necessary it's also possible to turn on more detailed tracing in the error.err file. Look in ActinicConstants.pm and change the line (around 85):

            Code:
            $::DEBUG_CLASS_FILTER = $::DC_NONE; 			 	# log nothing in release mode
            to

            Code:
            $::DEBUG_CLASS_FILTER = $::DC_SEARCH; 			 	# log search details
            That will add information about each stage of the filtering.

            Just for something to try, can you change all the filter options to checkboxes rather than having drop-downs? Or if you use drop-downs, ensure there is an "Any" choice which is preselected.

            Regarding the size of the scripts: yes, they are quite big. One task on our list is to compress them automatically. In the absence of that they can be compressed manually using the Google Closure compiler. Replace the existing .js files with the compressed versions in your site folder (backup the originals). See
            http://closure-compiler.appspot.com/home. I suggest you use Simple Optimization, which reduces the script size by about 70%. If supplied gzipped, that would be around 14KB.

            And yes, we need to handle parsing errors more cleanly. That's been on our list but dropped off our radar. I'll bump it up again.

            By the way we've put a lot of effort into polishing filtering in the upcoming maintenance release. Filtering is now completely implemented in the browser after the initial request for data. So there isn't a request made to the Perl scripts when clicking on an option. We've also added other sort orders: New Products, Best Sellers and Recommended (which is based on the position of the product in the original section). And we've added code that checks if the combination chosen in the filter is marked as an invalid permutation for the product. For example, a selection of "Mens", "Size 10", "Pink": that combination might be available for Ladies, but is marked as an invalid shoe for Mens. If so, the product won't be shown in the filter results. Can your script do that, Norman?
            Hugh Gibson
            CTO - Sellerdeck, part of ClearCourse

            Comment


              #7
              Hi Louise - good thinking about punctuation. I've changed 'Bareboat/Berth' to 'BareboatBerth' and uploaded. Still no joy though.

              Hugh - I've turned on the advanced tracing - see what you make of http://dev.randomriver.net/csc/saili...rses/error.err

              It's quite a beast.

              And very encouraged to hear that filtering is getting a big overhaul in the next maintenance release. I've not been able to upgrade a single customer satisfactorily yet as I can't get it working.
              Cheers

              Chris Dicken
              ====================
              Random River Web Design - Sellerdeck Ecommerce Stores and Upgrades

              Comment


                #8
                @ Hugh

                Do you have an approx. date for the new maintenance release - days, weeks??
                I have been playing with the filtering for some time but am ready to start building for real but if this component is to be improved on soon, I can hold off for a week or two.

                Cheers,
                www.norfolkherbs.co.uk
                Online Shop at: www.homescentherbs.co.uk

                Comment


                  #9
                  @Olly: Don't have a date yet. We're still polishing. Getting there, but beta is going to be sometime in April - ish!

                  I wouldn't hold off on working on filters as there can be quite a lot of work in configuring them properly for your site. None of that will change with the maintenance release.

                  We've improved performance and fixed a couple of edge-case bugs which are unlikely to affect users so deploying with this current build should be fine, too (presuming that you don't run into the problem that Chris is seeing).

                  @Chris:

                  Another hint about error.err: if you uncomment the definition of DC_LOG_SHORT as well it makes for easier to follow logs. No need to do it at the moment.

                  Anyway, it appears that the drop-down for Duration is causing the problem. That has an ID of S_4_2 and value of 2. The last entries in the error log show that it is searching for a value of 2 in the index for this control, and that is where the problem occurs.

                  You can see this by following these two links. The first one is the AJAX call made by the JavaScript as you have it at the moment:

                  http://dev.randomriver.net/cgi-bin/s...=1363850994013

                  This gives a server error.

                  The second one removes the S_4_2 parameter and gives some valid filtering results:

                  http://dev.randomriver.net/cgi-bin/s...=1363850994013

                  I would like to have your snapshot of your site as it stands so I can track down why the index lookup is causing a server crash.

                  Then try removing the Duration from filtering, or better still add an "Any" option as I would have thought that would be a useful option for people looking for cruises. Or try changing the values to "2 days" rather than just "2".
                  Hugh Gibson
                  CTO - Sellerdeck, part of ClearCourse

                  Comment


                    #10
                    Hi Hugh

                    The difference with the 'Duration' property is that it was set as a 'Number' rather than as a 'Text'. That could be what's causing the issue.

                    Also, they are all set with an 'Any' option, but the 'Any' option gets hidden by the JavaScript for some reason.

                    Well - now the filtering works, but returns zero results for everything.

                    Could you drop an email to chris@randomriver.net so I know what address to send the snapshot to? Cheers. I'll do two snapshots - one with the 'Duration' as a number field and one without.
                    Cheers

                    Chris Dicken
                    ====================
                    Random River Web Design - Sellerdeck Ecommerce Stores and Upgrades

                    Comment


                      #11
                      The difference with the 'Duration' property is that it was set as a 'Number' rather than as a 'Text'. That could be what's causing the issue.
                      We're looking into this.

                      Also, they are all set with an 'Any' option, but the 'Any' option gets hidden by the JavaScript for some reason.
                      We had found this issue, and a fix is in the forthcoming maintenance release (ref SD-1871). For the moment use checkboxes. Note that checkboxes are probably better in this case anyway - for example if I wanted to see all cruises in April and May I have to do two separate filter actions (choosing either option from the dropdown), whereas with checkboxes I can choose multiple options simultaneously.

                      Well - now the filtering works, but returns zero results for everything.
                      Probably because of the enforced selections from the drop-downs. Checkboxes will solve that problem.

                      I'll do two snapshots - one with the 'Duration' as a number field and one without.
                      Great. You could upload them to the snapshot server. Mind you, I've got no idea how to do that - I just know how to pick them up!
                      Hugh Gibson
                      CTO - Sellerdeck, part of ClearCourse

                      Comment


                        #12
                        Hooray - now I have filtering working. Thank you Hugh

                        Now all I need to do is figure out:

                        1) Why my prices aren't appearing in the filtered search results
                        2) Why the 'Any' options appear and disappear
                        3) Why the 'counts' appear and disappear
                        4) Why my selected options don't stay selected

                        Apart from all that, it's marvellous.

                        There is a touch of sarcasm there, I admit.
                        Cheers

                        Chris Dicken
                        ====================
                        Random River Web Design - Sellerdeck Ecommerce Stores and Upgrades

                        Comment


                          #13
                          With the help of the development team I've fixed the issue. The problem was that I had placed the filtering tools within the <div id="Content"> </div> tags. They shouldn't be there.
                          Cheers

                          Chris Dicken
                          ====================
                          Random River Web Design - Sellerdeck Ecommerce Stores and Upgrades

                          Comment


                            #14
                            Originally posted by chrisdicken View Post
                            With the help of the development team I've fixed the issue. The problem was that I had placed the filtering tools within the <div id="Content"> </div> tags. They shouldn't be there.
                            Worth knowing.........
                            Fergus Weir - teclan ltd
                            Ecommerce Digital Marketing

                            SellerDeck Responsive Web Design

                            SellerDeck Hosting
                            SellerDeck Digital Marketing

                            Comment


                              #15
                              Glad to see it all working now, Chris.

                              The problem you had with the Duration being a number has been identified as a bug. It's been fixed for the upcoming maintenance release (ref SD-1963).
                              Hugh Gibson
                              CTO - Sellerdeck, part of ClearCourse

                              Comment

                              Working...
                              X