Results 1 to 2 of 2

Thread: Help with JavaScript Objects

  1. #1
    Join Date
    Sep 2012

    Question Help with JavaScript Objects


    I'm working on a webpage and looking at using Objects to store data in a frame, allowing users to reload the target area for navigation. If the user moves to another page, the object have the new data added while keeping the original data. The idea came from the "Planet" Object example in the "JavaScript Bible (7th Edition)" (A search for "javascript bible" returns a Google Books reference to 4th edition book on Wiley's site).

    The best way to describe the Object I'm looking at would be an Excel spreadsheet. I have a "Worksheet" with multiple "Sheets" and, within that, "Cells". The "Cells" are broken out further into their respective properties and arranged in Columns and Rows. This is just an example, but is pretty close to the actual project. My plan is to populate the "Cells" with the values from a database onto a webpage. If the user switches to another "Sheet", new data is added to the Object and the old data is maintained. If the user switches back to the first "Sheet", the data will be accessed from the Object instead of reloading the page.

    The webpage will have users increase the size, possibly exponentially, of the object over time. In the begining, data will be limited to a few cells.

    I'm mostly looking for references to learn the process, diving into the details is how I learn. If you can provide one, that is great! If you have a code example, that would work as well.

    So, here are my questions:

    • Is this the most efficient way of doing things? I am working with an Apache/MySQL/PHP setup. Should I be looking into other options? If there is a better way, it may need to wait for version 2.0, but I'm willing to look into it.
    • How do you "navigate" through an Object? For example, I want to switch to "Sheet2" and populate the "Cell" with an address of Column 24, Row 13. In the "Planet" Object tutorial ("JavaScript Bible"), they use an Array of Objects. Should the "Workbook" and "Sheets" all be Arrays with "Cell" Objects?
    • Is there a good resource, on the web or a book, that explains Objects and Prototypes in more detail than "JavaScript Bible (7th Edition)"?
    • Do you see a problem with the Object getting too big? There are 184,110 "Cells" in each "Workbook". Additionally, each "Cell" can have a minimum of 20-30 properties. So it is possible to have 5,523,300 "entries". I don't see it getting that huge as some cells will not have data (using smart coding, not populating data for entries with no records, etc), but 2 million "entries" would be possible over time.

    Any help would be greatly appreciated!



  2. #2
    Join Date
    Feb 2003
    Michigan, USA
    Object size
    The only problem I see here relates to performance: RAM and the processing time it takes to traverse the object tree. From what I gather, a mobile version is probably out of the question.

    JavaScript Object Reference
    This is a good one from the folks at Mozilla: https://developer.mozilla.org/en-US/...e_Object_Model

    So is this: https://developer.mozilla.org/en-US/...ted_JavaScript

    Also, for some function wrappers for easing the creation of JavaScript "classes", check out the links below. I created my own wrappers:

    BaseClass = Object.extend({
      includes: SomeMixin,
      self: {
        // class level methods: BaseClass.foo()
      prototype: {
        // instance level methods: x = new BaseClass(); x.foo()
    var Mixin = {
      self: {
        // class level methods
      prototype: {
        // instance level methods
    Source code: https://github.com/gburghardt/JsLib/...es/Function.js

    And how to use it: https://github.com/gburghardt/JsLib/...nction.spec.js

    You'll want to create an object hierarchy:

    * Has many Workbooks

    * Has many columns

    * Has Many cells

    * Has the contents you are looking for.

    Some pseudo code to start you off with architecting your spreadsheet:

    var spreadsheet = new Spreadsheet();
    var workbook = spreadsheet.createWorkBook("workbook1");
    var column = workbook.createColumn(0);
    column.createCell("Contents go here", 0);
    column.createCell("Something else", 1);

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



X vBulletin 4.2.2 Debug Information

  • Page Generation 0.08757 seconds
  • Memory Usage 2,857KB
  • Queries Executed 15 (?)
More Information
Template Usage (33):
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_global_above_footer
  • (1)ad_global_below_navbar
  • (1)ad_global_header1
  • (1)ad_global_header2
  • (1)ad_navbar_below
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (1)ad_thread_first_post_content
  • (1)ad_thread_last_post_content
  • (2)bbcode_code
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)headinclude_bottom
  • (2)memberaction_dropdown
  • (1)navbar
  • (4)navbar_link
  • (1)navbar_moderation
  • (1)navbar_noticebit
  • (1)navbar_tabs
  • (2)option
  • (2)postbit
  • (2)postbit_onlinestatus
  • (2)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available (6):
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files (26):
  • ./showthread.php
  • ./global.php
  • ./includes/class_bootstrap.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/functions_navigation.php
  • ./includes/class_friendly_url.php
  • ./includes/class_hook.php
  • ./includes/class_bootstrap_framework.php
  • ./vb/vb.php
  • ./vb/phrase.php
  • ./includes/functions_facebook.php
  • ./includes/functions_calendar.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_notice.php
  • ./packages/vbattach/attach.php
  • ./vb/types.php
  • ./vb/cache.php
  • ./vb/cache/db.php
  • ./vb/cache/observer/db.php
  • ./vb/cache/observer.php 

Hooks Called (72):
  • init_startup
  • friendlyurl_resolve_class
  • init_startup_session_setup_start
  • database_pre_fetch_array
  • database_post_fetch_array
  • init_startup_session_setup_complete
  • global_bootstrap_init_start
  • global_bootstrap_init_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • load_show_variables
  • load_forum_show_variables
  • global_state_check
  • global_bootstrap_complete
  • global_start
  • style_fetch
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • strip_bbcode
  • friendlyurl_clean_fragment
  • friendlyurl_geturl
  • forumjump
  • cache_templates
  • cache_templates_process
  • template_register_var
  • template_render_output
  • fetch_template_start
  • fetch_template_complete
  • parse_templates
  • fetch_musername
  • notices_check_start
  • notices_noticebit
  • process_templates_complete
  • friendlyurl_redirect_canonical
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • memberaction_dropdown
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • build_navigation_data
  • build_navigation_array
  • check_navigation_permission
  • process_navigation_links_start
  • process_navigation_links_complete
  • set_navigation_menu_element
  • build_navigation_menudata
  • build_navigation_listdata
  • build_navigation_list
  • set_navigation_tab_main
  • set_navigation_tab_fallback
  • navigation_tab_complete
  • fb_like_button
  • showthread_complete
  • page_templates