Alpha Software Mobile Development Tools:   Alpha Anywhere    |   Alpha TransForm subscribe to our YouTube Channel  Follow Us on LinkedIn  Follow Us on Twitter  Follow Us on Facebook

Announcement

Collapse

The Alpha Software Forum Participation Guidelines

The Alpha Software Forum is a free forum created for Alpha Software Developer Community to ask for help, exchange ideas, and share solutions. Alpha Software strives to create an environment where all members of the community can feel safe to participate. In order to ensure the Alpha Software Forum is a place where all feel welcome, forum participants are expected to behave as follows:
  • Be professional in your conduct
  • Be kind to others
  • Be constructive when giving feedback
  • Be open to new ideas and suggestions
  • Stay on topic


Be sure all comments and threads you post are respectful. Posts that contain any of the following content will be considered a violation of your agreement as a member of the Alpha Software Forum Community and will be moderated:
  • Spam.
  • Vulgar language.
  • Quotes from private conversations without permission, including pricing and other sales related discussions.
  • Personal attacks, insults, or subtle put-downs.
  • Harassment, bullying, threatening, mocking, shaming, or deriding anyone.
  • Sexist, racist, homophobic, transphobic, ableist, or otherwise discriminatory jokes and language.
  • Sexually explicit or violent material, links, or language.
  • Pirated, hacked, or copyright-infringing material.
  • Encouraging of others to engage in the above behaviors.


If a thread or post is found to contain any of the content outlined above, a moderator may choose to take one of the following actions:
  • Remove the Post or Thread - the content is removed from the forum.
  • Place the User in Moderation - all posts and new threads must be approved by a moderator before they are posted.
  • Temporarily Ban the User - user is banned from forum for a period of time.
  • Permanently Ban the User - user is permanently banned from the forum.


Moderators may also rename posts and threads if they are too generic or do not property reflect the content.

Moderators may move threads if they have been posted in the incorrect forum.

Threads/Posts questioning specific moderator decisions or actions (such as "why was a user banned?") are not allowed and will be removed.

The owners of Alpha Software Corporation (Forum Owner) reserve the right to remove, edit, move, or close any thread for any reason; or ban any forum member without notice, reason, or explanation.

Community members are encouraged to click the "Report Post" icon in the lower left of a given post if they feel the post is in violation of the rules. This will alert the Moderators to take a look.

Alpha Software Corporation may amend the guidelines from time to time and may also vary the procedures it sets out where appropriate in a particular case. Your agreement to comply with the guidelines will be deemed agreement to any changes to it.



Bonus TIPS for Successful Posting

Try a Search First
It is highly recommended that a Search be done on your topic before posting, as many questions have been answered in prior posts. As with any search engine, the shorter the search term, the more "hits" will be returned, but the more specific the search term is, the greater the relevance of those "hits". Searching for "table" might well return every message on the board while "tablesum" would greatly restrict the number of messages returned.

When you do post
First, make sure you are posting your question in the correct forum. For example, if you post an issue regarding Desktop applications on the Mobile & Browser Applications board , not only will your question not be seen by the appropriate audience, it may also be removed or relocated.

The more detail you provide about your problem or question, the more likely someone is to understand your request and be able to help. A sample database with a minimum of records (and its support files, zipped together) will make it much easier to diagnose issues with your application. Screen shots of error messages are especially helpful.

When explaining how to reproduce your problem, please be as detailed as possible. Describe every step, click-by-click and keypress-by-keypress. Otherwise when others try to duplicate your problem, they may do something slightly different and end up with different results.

A note about attachments
You may only attach one file to each message. Attachment file size is limited to 2MB. If you need to include several files, you may do so by zipping them into a single archive.

If you forgot to attach your files to your post, please do NOT create a new thread. Instead, reply to your original message and attach the file there.

When attaching screen shots, it is best to attach an image file (.BMP, .JPG, .GIF, .PNG, etc.) or a zip file of several images, as opposed to a Word document containing the screen shots. Because Word documents are prone to viruses, many message board users will not open your Word file, therefore limiting their ability to help you.

Similarly, if you are uploading a zipped archive, you should simply create a .ZIP file and not a self-extracting .EXE as many users will not run your EXE file.
See more
See less

Detail View Image Size Requirements

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

    Detail View Image Size Requirements

    Is there a max size of data that alpha uses when it comes to a list with persisted data turned on?

    I am trying to debug why when I initially load the page I can get a certain users data to populate the list but when I click a refresh button ({dialog.object}.refreshListData('list id here')), I can't get the list to refresh. Since I am well aware of certain things breaking the list/detail view (i.e. integer fields having null or blank rather than zero) I decided to test out multiple users to see who's data would and wouldn't refresh. After eliminating any issues with the text based data in the database (again issues I've seen before with date and integer fields), I decided it must be a size issue. After looking at many different things I believe the issue is that some of the users have more than 2.5MB of data being sent to the list. I haven't confirmed this 100% as I'd need to run the refresh statement for 4000 different users, but I am thinking this is my best starting point for what might be causing the issue as everyone who hasn't worked has had over this amount and when I bring them under this amount they work (I bring them under by editing my database records to change a flag field so some of their records won't be sent to the list).

    So figured I'd ask the gurus what they thought, hopefully there is some insight into this (and I don't want to get into the database vs filesystem debate just yet as I want to make sure I know what is causing the issue before I write an xbasic script to convert every blob to a file and then place the file reference in the table).

    I've opened up the page in debug mode using safari and I don't see any errors occurring when I run refreshes and I can actually see all the data being passed from the server to the browser for the users who's data won't populate in the list which I found very weird.

    Thanks for all the help!
    Last edited by lilmofo812; 07-16-2016, 03:45 PM. Reason: Added some extra text

    #2
    Re: Detail View Image Size Requirements

    Version/Build of Alpha? Web App / PhoneGap Build App?

    Do you have the UX Properties... Restore data in List controls from Local Storage turned on? And... optionally... Compress data before storing in Local Storage?

    Local Storage is a bit fluid... but generally allows 5Mb ish. Unless your UX is loaded up as well, your 2.5Mb shouldn't cause too many problems. How many List rows is that?
    Last edited by Davidk; 07-16-2016, 06:22 PM.

    Comment


      #3
      Re: Detail View Image Size Requirements

      Using the most recent released version of alpha.

      I have restore data in list controls turned on, but I'm not compressing data (though this would only solve the issue until the database grows to consume that as well).

      I'm not sure what you mean by "UX is loaded up as well"? My component is about 2MB in size (reading that from the web projects list of components). The number of rows is different for each user but the ones that are failing have between 27 and 180 (the latter of which has over 5MB of image data alone).

      It sounds like you're saying it is probably failing because when the data is loaded from the server it puts it in local storage so if it isn't able to do that then it's also not going to load it into the list meaning the only way to get this to work is to use file references (though am I still going to have this issue since the images have to be embedded into the list in order for local storage persisting to work)?

      Comment


        #4
        Re: Detail View Image Size Requirements

        First... Web App or PhoneGap Build App?

        I think we have to break this down and get a bit more info. You say... "when I initially load the page I can get a certain users data to populate the list but when I click a refresh button ({dialog.object}.refreshListData('list id here')), I can't get the list to refresh."

        When you perform .refreshListData()... what happens? Is the List emptied? Nothing?

        When a List and UX are set to persist... this persistence only occurs when the List data is edited.

        You can use the Defined Control "UX-Local Storage Manager" to see what's being persisted. You'll see when the List first loads, that Local Storage is empty. Edit a row and save that edit (not syncronized... just saved) and you'll see Local Storage has values.

        You could go and change a value in your table and save that change... and then browser refresh your UX... and your List will be loaded from LS and will not show the table change.

        To be very specific... the List actually does get loaded from the table... and then the data gets replaced by LS.

        So... starting at the beginning... LS empty... Load your UX. Data is in the List, but LS is empty. Now...

        Edit and Save a row... LS has data.

        or

        .refreshListData()... LS has data.
        Last edited by Davidk; 07-16-2016, 07:16 PM.

        Comment


          #5
          Re: Detail View Image Size Requirements

          Here is the the flow of how I've been checking this:

          1) I empty local storage using the local storage manager

          2) I refresh the page so the app will load and I can login as the user who's data breaks the list (integrated login component)

          3) When the app loads it goes to the home screen panel and I use a menu to open the list having issues (I would usually not have the list populate until render and explicit refresh but that made this users data not load at all so I let this list load when the user logs in.

          4) When I navigate to the list I can see all the data in the list fine.

          5) I then change the number I'm filtering the list on to another user and click the refresh button (I use a user's number that I know works). When watching the app in debug mode in the browser I can see the Ajax works and sends the data back and the list populates.

          6) I then switch change the filter on number back to the original user who's data breaks the list. Again I see the Ajax work and the data comes back to the browser (I can see all the JSON data in the console when I check the result of the Ajax) but the list doesn't populate (the last users data is still in the list).

          When looking at the result of the Ajax I can see that it is calling functions that look like they are meant for saving data to local storage but I could be wrong about this.

          The only difference I can find between the the users who's data works and those that don't is that in the console for the debugger I see that anyone who has more than 2.5MB of data returned by the Ajax has the issue, that's what lead me to believe this is the problem. I know local storage isn't meant for a lot of data, but I thought with v4 release they mentioned local storage being measured in GB rather than MB but maybe that is just for PhoneGap apps? I think what I'm finding here is web app local storage (not PhoneGap) is really too limited for a full fledged app to work offline and is better suited for making minor changes to a more text based application (like the contacts app that was demoed with version 3). I know with the new version release they talked about doing video and audio in disconnected apps but that was all phone gap related so maybe everything on the web app side is still hindered by limitations of mobile Safari and Chrome meaning I'll need to take things back online.

          Comment


            #6
            Re: Detail View Image Size Requirements

            In the code you run to refresh the List... try this before the refresh...

            Code:
            var obj = {dialog.object}._ls_getData('a');
            {dialog.object}._ls_deleteKeys(obj);
            This will delete all keys in LS.

            If your "breaking" data loads the first time, then let's assume there enough LS to handle it. Are you sure that all rows are loaded?

            Then you change to a smaller List and all is ok. Then you change back to the "breaking" data. I don't know the literal mechanics of Alpha LS, but... as you say... maybe there isn't enough LS for a second data load just at that time.

            So... clear out LS first, then refresh. If that doesn't work I'd need to work with the List and 2 sets of data to see what's going on.

            What you read about was File System Storage... not local storage. LS is governed by the browser... 5Mb-ish. File System Storage is device file storage... potentially GBs on a device... but this is a PhoneGap Build scenario. A Web app, by definition, can't really be offline. You can get away with kind of simulating offline with Alpha because you can use LS... but... if anything happened to cause a browser refresh of the page and you don't have a connection... then you don't have an app at all... no page loads. True offline can only be achieved with PhoneGap Build.

            Comment

            Working...
            X