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

Performance - List Control vs Viewbox Control

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

  • Performance - List Control vs Viewbox Control

    I converted a UX component with 8 list components on it to 8 viewbox components.
    The UX size went from 3.2Mb to 852Kb.
    The rendering time of the component went from 6 seconds down to less than 2 seconds, a dramatic difference.

    What are the limitations of the Viewbox component vs the List component, as it seems pretty obvious that unless the List component is explicitly required, there is a heavy overhead price to pay for using the List?


    In my case, I have still got to figure out how to apply conditional formatting to numeric fields in a viewbox and also how to use conditional images for logical fields (if this is even possible).
    Last edited by iRadiate; 02-09-2020, 05:49 PM. Reason: grammar
    Alpha Anywhere v12.4.6.4.0 Build 8000-5628 IIS v10.0 on Windows Server 2019 Std in Hyper-V

  • #2
    Re: Performance - List Control vs Viewbox Control

    View Box - Well Stephen welcome to my world, well its really in the name, the strength is viewing information, and boy what a job it does, but there is yin and yang that goes with it as you have discovered, but nothing really worthwhile is easy. One one side the benefits are clear, on the other the how to is not so clear, the documentation basically covers about 10% of the options available, BUT it's worth the effort. The issues you will bump into will be how to extract the elements out of the control you need and then have access to them for your xbasic functions required to filter and repopulate, now i'll be clear here, I'm not suggesting these should expected processes therefore should be in the VB, we would eventually just end up with another bloated component trying to be everything to everyone, and this is where the problem starts.

    Other than the Google Images in the 2020|View|Port everything else is the ViewBox.
    Map.GIF
    images.GIF
    charts.GIF
    video2.GIF

    As always pioneers help those coming along the same path, so when I get time i'll help you to understand a proven method this template is based on, but I have quite a bit on right now and time is rather tight, but if could suggest one thing, as you build your components name you controls generically e.g. old days World, Continent, Subcontinent, should now be Primary ViewBox, GroupsViewBox, SubgroupsViewBox, the the Viewbox is easily repopulated from another set of tables completely, the ability to repurpose you controls is very powerful.

    Does this mean you can't add CRUD for your data, absolutely not - as the component is so light as the DOM is so light fast and refreshing to use, the benefits of bringing in small snippets to edit data then destroying them is well worth it.

    Must go I will contact you, hang in there.


    Formatting.
    Attached Files
    Insanity: doing the same thing over and over again and expecting different results.
    Albert Einstein, (attributed)
    US (German-born) physicist (1879 - 1955)

    Comment


    • #3
      Re: Performance - List Control vs Viewbox Control

      format directives.GIF
      Insanity: doing the same thing over and over again and expecting different results.
      Albert Einstein, (attributed)
      US (German-born) physicist (1879 - 1955)

      Comment


      • #4
        Re: Performance - List Control vs Viewbox Control

        Another thing, the above component publishes at 540k.

        Be careful using the Javascript actions, from what I can see they are heavy, I avoid them completely now, by all means use them to build what you need, then copy the result and paste the component methods to where you need it, then delete the Action.

        The component above using Javascript actions was 630k.

        Just saying.

        Pete
        Insanity: doing the same thing over and over again and expecting different results.
        Albert Einstein, (attributed)
        US (German-born) physicist (1879 - 1955)

        Comment


        • #5
          Re: Performance - List Control vs Viewbox Control

          Hiya Pete,

          Yes, I've discovered format directives and I'm using them for numeric and date fields. Essentially, for now at least, I'm trying to use the Viewbox in place of the List control where the UX is mostly just SQL query and display.
          I've also discovered out how I can use an image as a conditional display for a logical T/F field (Cool!). In my VB control I have a logical field called 'Approved' so in the VB html Layout template this is needed:

          Code:
          {*if Approved == 'F'}
          		<td width="7%" align="center"><img src="svgIcon=#alpha-icon-xCircle:icon,12{ fill: #800000;}" ></td>
          	{*else}
          		<td width="7%" align="center"><img src="svgIcon=#alpha-icon-checkCircle:icon,12{ fill: #008000;}" ></td>
          	{*endif}
          Works like a charm and looks like this highlighted section of the VB:

          Logical Image.png

          I also want to figure out how to blank a zero value in the VB. ie) all the numbers in the list with a zero, I do not want them to show .. just blank. I can do this in a List, not sure how in the VB. Any ideas?

          Like these highlighted numbers:

          BlankZeros.png

          Right now, I'm completely enamored with the ViewBox control, it seems to have most of the capabilities of the List control with a fraction of the performance overhead.
          Thanks for your comments, I always interested in your comments as your are a very creative outside the box thinker.
          Alpha Anywhere v12.4.6.4.0 Build 8000-5628 IIS v10.0 on Windows Server 2019 Std in Hyper-V

          Comment


          • #6
            Re: Performance - List Control vs Viewbox Control

            <tr>
            <td width="5%">{firstname}</td>
            <td width="12%">{lastname}</td>
            <td width="7%">{city}</td>
            {*if state != 'ma'}
            <td width="7%">{state}</td>
            {*endif}

            </tr>
            [ATTACH=CONFIG]46562[/ATTACH]


            sorry messed that up. This is right.
            Attached Files
            Last edited by peteconway; 02-09-2020, 08:46 PM.
            Insanity: doing the same thing over and over again and expecting different results.
            Albert Einstein, (attributed)
            US (German-born) physicist (1879 - 1955)

            Comment


            • #7
              Re: Performance - List Control vs Viewbox Control

              Well it also gives you dynamic control of the styling from SQL Expressions - a winner for visual dynamic control.
              sql.GIF
              radius.GIF
              americas.GIF

              WAS

              50.GIF
              Last edited by peteconway; 02-09-2020, 09:11 PM.
              Insanity: doing the same thing over and over again and expecting different results.
              Albert Einstein, (attributed)
              US (German-born) physicist (1879 - 1955)

              Comment


              • #8
                Re: Performance - List Control vs Viewbox Control

                Originally posted by peteconway View Post
                [ATTACH=CONFIG]46562[/ATTACH]


                sorry messed that up. This is right.
                Got it ..

                Code:
                {*root}	
                {*header}
                <table font size="3" border="0" width="100%" align="center">
                	<tr style="background-color:#008080; color:#ffffff">
                		<td width="5%" align="left" style="font-size:12px">MACHINE</th>
                		<td width="12%" align="center"style="font-size:12px">LAST CHECK</th>
                		<td width="7%" align="center"style="font-size:12px">6X</th>
                		<td width="7%" align="center"style="font-size:12px">6FFF</th>
                		<td width="7%" align="center"style="font-size:12px">10X</th>
                		<td width="7%" align="center"style="font-size:12px">10FFF</th>
                		<td width="7%" align="center"style="font-size:12px">15X</th>
                		<td width="7%" align="center"style="font-size:12px">18X</th>
                		<td width="7%" align="center"style="font-size:12px">6e</th>
                		<td width="7%" align="center"style="font-size:12px">9e</th>
                		<td width="7%" align="center"style="font-size:12px">12e</th>
                		<td width="7%" align="center"style="font-size:12px">16e</th>
                		<td width="7%" align="center"style="font-size:12px">20e</th>
                		<td width="5%" align="center"style="font-size:12px">APPROVED</th>
                	</tr>
                {/*header}
                	<tr style="font-weight:bold;">
                		<td width="5%" align="left">{MachineId}</td>
                		<td width="12%" align="center">{Day:dateString('MM/dd/yyyy','dd-MM-yyyy')}</td>
                	{*if Output_6MV != 0}	
                		<td width="7%" align="center">{Output_6MV:number('0.0000')}</td>
                	{*else}
                		<td width="7%" align="center">{''}</td>
                	{*endif}
                		
                	{*if Output_6FFFMV != 0}	
                		<td width="7%" align="center">{Output_6FFFMV:number('0.0000')}</td>
                	{*else}
                		<td width="7%" align="center">{''}</td>
                	{*endif}
                
                	{*if Output_10MV != 0}
                		<td width="7%" align="center">{Output_10MV:number('0.0000')}</td>
                	{*else}
                		<td width="7%" align="center">{''}</td>
                	{*endif}
                
                	{*if Output_10FFFMV != 0}
                		<td width="7%" align="center">{Output_10FFFMV:number('0.0000')}</td>
                	{*else}
                		<td width="7%" align="center">{''}</td>
                	{*endif}
                
                	{*if Output_15MV != 0}
                		<td width="7%" align="center">{Output_15MV:number('0.0000')}</td>
                	{*else}
                		<td width="7%" align="center">{''}</td>
                	{*endif}
                
                	{*if Output_18MV != 0}
                		<td width="7%" align="center">{Output_18MV:number('0.0000')}</td>
                	{*else}
                		<td width="7%" align="center">{''}</td>
                	{*endif}
                
                	{*if Output_6e != 0}
                		<td width="7%" align="center">{Output_6e:number('0.0000')}</td>
                	{*else}
                		<td width="7%" align="center">{''}</td>
                	{*endif}
                
                	{*if Output_9e != 0}
                		<td width="7%" align="center">{Output_9e:number('0.0000')}</td>
                	{*else}
                		<td width="7%" align="center">{''}</td>
                	{*endif}
                
                	{*if Output_12e != 0}
                		<td width="7%" align="center">{Output_12e:number('0.0000')}</td>
                	{*else}
                		<td width="7%" align="center">{''}</td>
                	{*endif}
                
                	{*if Output_16e != 0}
                		<td width="7%" align="center">{Output_16e:number('0.0000')}</td>
                	{*else}
                		<td width="7%" align="center">{''}</td>
                	{*endif}
                
                	{*if Output_20e != 0}
                		<td width="7%" align="center">{Output_20e:number('0.0000')}</td>
                	{*else}
                		<td width="7%" align="center">{''}</td>
                	{*endif}
                
                	{*if Approved == 'F'}
                		<td width="7%" align="center"><img src="svgIcon=#alpha-icon-xCircle:icon,12{ fill: #800000;}" ></td>
                	{*else}
                		<td width="7%" align="center"><img src="svgIcon=#alpha-icon-checkCircle:icon,12{ fill: #008000;}" ></td>
                	{*endif}
                	</tr>
                {*footer}
                </table>
                {/*footer}
                {/*root}
                Blank If Zero.png

                Thanks Pete !
                Alpha Anywhere v12.4.6.4.0 Build 8000-5628 IIS v10.0 on Windows Server 2019 Std in Hyper-V

                Comment


                • #9
                  Re: Performance - List Control vs Viewbox Control

                  Very nice.
                  Insanity: doing the same thing over and over again and expecting different results.
                  Albert Einstein, (attributed)
                  US (German-born) physicist (1879 - 1955)

                  Comment

                  Working...
                  X