Estoy teniendo problemas con las conexiones concurrentes. Tengo una página principal en la cual muestro un resumen del carrito, importe y artículos. Está enfocada a agentes de ventas que levantan pedidos para sus clientes. Por lo que al entrar en la página de "cambiar cliente" firefox me marca error en que "cnx2 is undefinded" y no termina de cargar el resumen del carrito dejandome los campos en blanco.
Ya habia tenido un error similar pero donde no funcionaba era en IE.
Aqui el código de la subpágina y en rojo donde me marca el error
Código:
y este es el código ajax de la página principalvar cnx2; var text; function chngCli() { var sel = document.getElementById("slCli") var idCli = sel.options[sel.selectedIndex].getAttribute('value'); text = sel.options[sel.selectedIndex].text; mandaCli(idCli,text); } function mandaCli(id,txt) { var pag = 'scripts/jx_chngCli.asp?id='+ id + '&txt=' + txt ; cnx2 = nuevoAjax(); cnx2.onreadystatechange = procesarEventos; cnx2.open('GET',pag ,true); cnx2.send(null); } function procesarEventos() { if(cnx2.readyState == 4 && cnx2.status == 200) { var lbl = document.getElementById('d_clie'); lbl.innerHTML = 'Cliente : '+ text window.location = 'index.asp?nav=ini'; alert('cliente cambiado'); return; } if(cnx2.readyState == 4 && cnx2.status == 500) { alert('El cliente seleccionado no tiene articulos asignados'); return; } } //*************************************** //Funciones comunes //*************************************** function addEvent(elemento,nomevento,funcion,captura) { if (elemento.attachEvent) { elemento.attachEvent('on'+nomevento,funcion); return true; } else if (elemento.addEventListener) { elemento.addEventListener(nomevento,funcion,captura); return true; } else return false; } function nuevoAjax(){ var xmlhttp=false; try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (E) { xmlhttp = false; } } if (!xmlhttp && typeof XMLHttpRequest!='undefined') { xmlhttp = new XMLHttpRequest(); } return xmlhttp; }
Código:
addEvent(window,'load',carga_importe,false); var cl_cnx1; function carga_importe() { cl_cnx1=crearXMLHttpRequest(); if (window.ActiveXObject) { //es interné explorer cl_cnx1.onreadystatechange = query_edocta; cl_cnx1.open("POST", '../Scripts/jx_importe.asp', true); cl_cnx1.send(null); } else if (window.XMLHttpRequest) { //tonces se supones es cualquier otro que si funciona cl_cnx1.onreadystatechange = procesarEventos; cl_cnx1.open('GET','../jx_importe.asp', true); cl_cnx1.send(null); } } function query_edocta() { //funcion para explorer var epr = document.getElementById('cli_importe'); if(cl_cnx1.readyState == 4 && cl_cnx1.status ==200) { var xml = parseFloat(cl_cnx1.responseText); //var mat = xml.getElementsByTagName('SALDO'); //alert(xml); f=dynapi.functions; var hid_imp = parseFloat(document.getElementById("hid_tx").value); var mon = document.getElementById("hid_moneda").value; var total = document.getElementById("cli_importe"); var num = (xml * ((hid_imp/100)+1)); num = f.formatNumber(f.toFloat(num),'#,###,##0.00'); var txt = 'Total: ' + num + ' ' + mon; epr.innerHTML = txt; } else { epr.innerHTML = 'Total: cargando...'; } } function procesarEventos() { if(cl_cnx1.readyState == 4) if(cl_cnx1.status==200) { //alert("cliente"); //var xml = cli_cl_cnx1.responseText; xml = cl_cnx1.responseXML; var can = xml.getElementsByTagName('importe'); var importe = can[0].firstChild.nodeValue; f=dynapi.functions; var hid_imp = document.getElementById("hid_tx").value; if (hid_imp == null) { hid_imp = 0;} var mon = document.getElementById("hid_moneda").value var total = document.getElementById("cli_importe"); var num = (importe * ((hid_imp/100)+1)); var txt = 'Total: ' + (f.formatNumber(num,'#,###,##0.00')) + ' ' + mon; total.innerHTML = txt; } } //*************************************** //Funciones comunes //*************************************** function addEvent(elemento,nomevento,funcion,captura) { if (elemento.attachEvent) { elemento.attachEvent('on'+nomevento,funcion); return true; } else if (elemento.addEventListener) { elemento.addEventListener(nomevento,funcion,captura); return true; } else return false; } function crearXMLHttpRequest() { var xmlHttp=null; if (window.ActiveXObject) xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); else if (window.XMLHttpRequest) xmlHttp = new XMLHttpRequest(); return xmlHttp; }