javascript - Handling asynchronous response in JS - limited access to JS files that can be edited -
i modifying third party - web client application in have access js files. search function limited search in 1 given server node @ time, , work around, hardcoded server nodes , created loop, invoking "search" several times, @ different nodes.
the server response (in form of form - without getters) automatically handled callback, renders view of form. means able display last response , displaying 1 set of result.
to handle this, added $trs = $(tr).clone(true) on callback function, saving rows previous forms , - made last loop "search" have callback - append collected rows $tr , display last form complete results nodes.
but result inconsistent. displays result 1 server node. think caused delay in server response caused form render last. tried put delay settimeout function, keeps me getting result @ all
i new web programming - js , jquery both (well css , html lol) , ask suggestions on better way handle this.
thank you!
_handleconfigsubmit: function (form, error) { //alert("_handleconfigsubmit"); if (form) { var formview = new jabberwerx.ui.xdataformview(form); var = this; formview.event("xdataitemselected").bind(function(evt) { that.jq.find(".muc_search_button_join").removeattr("disabled"); var resulttable = that.jq.find(".muc_search_results table.result_table"); resulttable.find("tr.selected").removeclass("selected"); that._selecteditem = evt.data.selected; resulttable.find("tr#"+evt.data.selected._guid).addclass("selected"); }); var searchresultsdiv = jabberwerx.$(".muc_search_results", this.jq); searchresultsdiv.empty(); this.update(); var dim = { width: searchresultsdiv.width(), height: searchresultsdiv.height() }; formview.render().appendto(searchresultsdiv); formview.dimensions(dim); $trs = $("table.result_table tbody>tr:not(:first)").clone(true); if ($trlist!=null){ $trlist = $trlist.add($trs); }else{ $trlist = $trs; } $("table.result_table tbody>tr:not(:first)").remove() if (ctr<=3){ $("table.result_table tbody").append($trlist); }else{ ctr++; } } else { this._showerror(error); } }
Comments
Post a Comment