Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    105

    IE 7-8 Jquery problema nelle chiamate

    Buon giorno a tutti,
    come si nota dal subject del post ho un problema con IE7 e 8 durante le chiamate ajax usando la lib jquery.

    la problematica é la seguente.

    io ho questa funzione

    codice:
    function moveAdd(){
    	modifica = true;
    	var hidden = document.getElementById("currentselection");
    	var hiddenval = hidden.value;		
    	var mselect = document.getElementById("multipleselect");
    	var arSelected = getMultiple(multipleselect);	
    	if(arSelected.length > 0){		
    		$.ajax({
    			type: "GET",
    			url: "/ajax.do?action=addmodelloajax&id="+arSelected[0],
    			dataType: ($.browser.msie) ? "xml" : "text/xml",			
    			complete: function(){
    				calcolaTotale();
    			},
    			success: parseXML
    		});		
    	}else{
    		alert('Nessun Oggetto selezionato ! ');
    	}
    }
    dove in base all id selezionato da una "multiselect" faccio una chiamata al server dicendo di crearmi un entry di quel modello e di ritornarmelo. Visto che serve per popolare un carrello io ritorno i dati di questo modello con quantita 1.
    dopo che e stato inserito nella tabella chiamo un altra funzione per calcolare il totale sempre in ajax

    codice:
    function calcolaTotale(){
    	$.ajax({
    		type: "GET",
    		url: "/ajax.do?methodcall=totaleordineajax&sp=",  	
    		dataType: ($.browser.msie) ? "xml" : "text/xml",
    		contentType:"application/xml",
    		success: function(xml){  			
    			var tdval = document.getElementById('totpagamento');
    			$(xml).find("totalecarrello").each(function(){
    				var tot = $(this).attr("tot");				
    				tdval.innerHTML = tot;
    
    			});	
    		}
    				
    	});
    }
    Il problema e che questa funzione su ie7 non viene mai chiamata, nonostante che ho inserito la chiamata nella direttiva complete di JQuery.

    Se qualcuno ha qualche hint vi sarei grati

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    105
    Ciao Ragazzi, ho risolto il problema.
    Explorer mantiene in cache alcune chiamate per evitare un overhead di chiamate =.

    La soluzione é aggiungere un numero random alla fine dell url, in modo da nascondere la cache.
    +"&"+Math.random()
    ciaop

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    148
    Ciao a tutti, riapro questo post perchè sto avendo lo stesso problema sempre su explorer...
    uso questa funzione:
    codice:
    <script type="text/javascript">
    function unique_requestid() {
    var timestamp = Number(new Date()).toString();
    var random = Math.random() * (Math.random() * 100000 * Math.random() );
    var unique = new String();
    unique = timestamp + random;
    return unique;
    }
                $('#risults').load('contatore-ris.php?random=' + unique_requestid());
    </script>
    e nella pagina php ho inserito questo:
    Codice PHP:
    header'Expires: Sat, 01 Jan 1990 01:00:00 GMT' );
    header'Last-Modified: ' gmdate'D, d M Y H:i:s' ) . ' GMT' );
    header'Cache-Control: no-store, no-cache, must-revalidate' );
    header'Cache-Control: post-check=0, pre-check=0'false );
    header'Pragma: no-cache' ); 
    Funziona su tutti i browser tranne ie 7 e 8.
    Ho cercato in rete ma non ho trovato nulla che mi possa aiutare...
    Non so più dove sbattere la testa!
    Grazie ciao

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    105
    Ciao Premettendo che nn vedo l'ora che explorer venga abbandonato dal mondo intero, ti riporto un paio di cose che ho letto sul load.

    Se fai il load in una tabella in IE ci sono dei problemi-
    Link

    Prova ad usare direttamente la funzione ajax.

    es
    codice:
    		
    $.ajax({
    type: "GET",
    dataType:  "text/html",
    url: "/ajax.do?methodcall=listaordini&"+new Date().getTime(),
    beforeSend: function(){
    },
    complete: function(){
    },
    success: function(xml){
    		$("#tabellaordini").html(xml);	
    }		
    });
    io non ho mai avuto problemi.

    E vero devi scrivere un po di piu che per la funzione load ma hai un maggiore controllo sui parametri.

    Ciaop

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    105
    Ah un ultima cosa ma penso tu lo sappia gia.

    USA firebug perche é spaventoso!!!

    firebug

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    148
    Ciao e ti ringrazio per i consigli!
    Se facessero un referendum su explorer in questo periodo penso che lo facciano sparire dalla faccia della terra!!!
    Volevo chiederti una cosa sul codice che non ho capito....
    tu usi:
    codice:
    url: "/ajax.do?methodcall=listaordini&"+new Date().getTime(),
    ma ajax.do è realmente il nome che hai dato al file oppure...?cos'è?
    giusto per capire se li devo metterci il mio "contatore-ris.php"...

    Si firebug è veramente una potenza....peccato che per il mio problema nemmeno firebug restituisce errore...

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    105
    Ciao, ajax.do e come ajax.html. Mi spiego meglio io come linguaggio lato server uso java e ho mappato l url ajax.do ad una funzione lato server quindi in definitiva e come il tuo "contatore-ris.php".

    Scusa ma e mattina presto e ci metto a mettere a fuoco le ideee

    Buona giornata

    Ale

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.