Results 1 to 4 of 4

Thread: Always fails when browsed from some computers, but works on others.

  1. #1
    Ext JS Premium Member
    Join Date
    Jul 2009
    Location
    Seattle, Washington USA
    Posts
    200

    Default Always fails when browsed from some computers, but works on others.

    On many computers, this works perfectly. On others, it fails. On computers where it fails, it fails every time, and it works every time on the others. The browser type doesn't appear to make a difference.

    The code runs when the tab is changed.
    The last alert that appears before the failure is: alert("define panel")

    Line: 14639
    Error: 'dom' is null or not an object

    Code:
    if(this.el){
    this.el = Ext.get(this.el);
    if(this.allowDomMove !== false){
      ct.dom.insertBefore(this.el.dom, position);
    }
    }
    In the debugger, this.el.dom is definitely an object, but ct is null.

    If I don't enter the debugger, I get a second error:
    Line: 4324
    Error: Could not complete the operation due to error 80020101.

    After this error, moving to another tab works, but ExtJS appears to be broken in rendering any more new elements.

    Code:
    function OpenWiki(params)
    {
    if (typeof(KnowledgeBase.gridWiki) == "undefined")
    {
       alert("openWikiData");
       KnowledgeBase.Wiki.data = new Ext.data.DirectStore
       (
           {
               proxy: new Ext.data.DirectProxy
               (
                   {
                       paramsAsHash: false,
                       directFn: DirectRequest.InitWiki
                   }
               ),
               autoLoad: false,
               directFn: DirectRequest.InitWiki,
               paramsAsHash: false,
               idProperty: 'WikiID',
               fields: 
               [
                   {name: 'WikiID', type: 'int'},
                   {name: 'TemplateID', type: 'int'},
                   {name: 'PortalID', type: 'int'},
                   {name: 'PortalName', type: 'string'},
                   {name: 'SessionID', type: 'int'},
                   {name: 'ClientID', type: 'int'},
                   {name: 'Title', type: 'string'}, 
                   {name: 'Createdate', type: 'date'},
                   {name: 'Modifydate', type: 'date'},
                   {name: 'Viewdate', type: 'date'},
                   {name: 'ModifyUserID', type: 'int'},
                   {name: 'ModifyFirstName', type: 'string'},
                   {name: 'ModifyLastName', type: 'string'},
                   {name: 'Template', type: 'int'},
                   {name: 'CheckOut', type: 'int'},
                   {name: 'CheckOutUserID', type: 'int'},
                   {name: 'CheckOutFirstName', type: 'string'},
                   {name: 'CheckOutLastName', type: 'string'},
                   {name: 'CheckOutDate', type: 'date'},
                   {name: 'StatRateCount', type: 'int'},
                   {name: 'StatAveRating', type: 'int'},
                   {name: 'SttatHitCount', type: 'int'}
               ],
               remoteSort: false,
               listeners: 
               {
                   load: function() 
                   {
                       KnowledgeBase.Wiki.data,
                       alert("data load");
                   }
               }
           }
       );
     
       alert("defineRenderers");
       KnowledgeBase.Wiki.Renderers = 
       {
           Wiki : function(value, p, r)
           {
               return String.format
               (
                   '<div class="SD_CellTitleLink">{0}</a></div><div class="SD_CellText">{1}</div>',
                   value, 'Some description text goes here', r.data.WikiID
               );
           }
       };
     alert("define panel")
       KnowledgeBase.Wiki.WikiGrid = new Ext.grid.GridPanel
       (
           {
               renderTo: 'wikiHeaderBody',
               frame: false,
               stripeRows: false,
               scroll: false,
               autoHeight:true,
               width: 800,
               columnLines:true,
               disableSelection: true,
               trackMouseOver: false,
               store: KnowledgeBase.Wiki.data,
               columns:
               [
                   {header: 'Tuan Wiki', id:'WikiID', width:400, dataIndex:'Title', renderer: KnowledgeBase.Wiki.Renderers.Wiki, sortable: false, menuDisabled:true},
                   {header: 'Posted Date', id:'Modifydate', width:200, dataIndex:'Viewdate', renderer: KnowledgeBase.Wiki.Renderers.Wiki, sortable: false, menuDisabled:true}
               ],
               listeners: 
               {
                   render: function() 
                   {
                       alert("displayer");
                       KnowledgeBase.Wiki.Displayer.onShow(KnowledgeBase.Wiki.WikiGrid); 
                   }
               }
           }
       );
       alert("end define panel")
        }
        alert("load panel");
        KnowledgeBase.Wiki.data.load();
    }
    Last edited by geewhizbang; 20 Aug 2009 at 11:18 AM. Reason: added more info

  2. #2
    Sencha User BitPoet's Avatar
    Join Date
    Sep 2008
    Location
    Bavaria
    Posts
    277

    Default

    Are you missing the semicolons after the alert messages in your real code too?

  3. #3
    Ext JS Premium Member
    Join Date
    Jul 2009
    Location
    Seattle, Washington USA
    Posts
    200

    Default It isn't semicolons. I have added them everywhere, still broken on same computers.

    I inserted semicolons everywhere they were missing, but they don't cause this bug. They would matter if the code was ever minified, but at the moment that is not a problem.

    The errors happened before the alerts were in place in any case. The alerts just make it clear where it is breaking.

    Semicolons don't explain the computer-related consistency of the failures. It really does work only on some computers and not on others. If it doesn't workk in IE6 / IE7 / IE8 on a computer, it also doesn't work on Firefox.

    The other issue that I have just diagnosed is that the server side component DirectRequest.InitWiki doesn't happen. On the same computer, a different direct request DOES happen.

    I am going to post this in the Ext.Direct forum and see what someone has to say about this.

  4. #4
    Ext JS Premium Member
    Join Date
    Jul 2009
    Location
    Seattle, Washington USA
    Posts
    200

    Default

    I have since determined that this is a security configuration issue on the server. The failures were happening only on computers where users were logged on to our corporate domain.

    If they were logged on anonymously just to their box with no domain authority at all, then IIS behaves properly. I still don't know where in the rather large piece of code the security problem is occurring (it's not my code) but it has to be a security problem.

Posting Permissions

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