Foros del Web » Programando para Internet » Javascript »

Java Script, XML y Temporales de Internet

Estas en el tema de Java Script, XML y Temporales de Internet en el foro de Javascript en Foros del Web. Hola tengo un problemita... Desde php tengo un formulario que carga un dato en un xml, y a este xml lo cargo desde javascript. El ...
  #1 (permalink)  
Antiguo 14/04/2009, 10:00
(Desactivado)
 
Fecha de Ingreso: enero-2008
Ubicación: Mendoza
Mensajes: 458
Antigüedad: 16 años, 3 meses
Puntos: 2
Exclamación Java Script, XML y Temporales de Internet

Hola tengo un problemita...

Desde php tengo un formulario que carga un dato en un xml, y a este xml lo cargo desde javascript. El tema es que una ves cargada la pagina me toma el xml viejo, es decir, con la informacion anterior a la carga.

Como hago para que no se carga en los temporales, o por lo menos que me muestre la informacion actualizada sin tener que el usuario elimine sus temporales de internet manualmente, ya que haciendo esto, veo la informacion actualizada...

POr si lo necesitan les dejo mi codigo...

Código PHP:

<?php
// si hay datos ...
if(isset($_POST['submit'])) { 
// file_get_contents -> leer el contenido de un archivo
$fh file_get_contents('markers.xml'); 

try { 
// SimpleXMLElement- > leemos documentos XML
$xml = new SimpleXMLElement($fh); 
} catch (
Exception $e) { 
// mensaje de error 
echo $e->getMessage(); 


// addChild -> agregar un nodo nuevo
$marker $xml->addChild('marker'); 

// atributos
$marker->addAttribute('lat'$_POST['lat']); 
$marker->addAttribute('lng'$_POST['lng']); 
$marker->addAttribute('msg'utf8_encode($_POST['msg'])); 
$marker->addAttribute('name'utf8_encode($_POST['name'])); 
$marker->addAttribute('link'utf8_encode($_POST['link'])); 

// fopen-> abre un archivo
$fp fopen('markers.xml','w'); 
// fwrite-> escribe sobre un archivo
fwrite($fp$xml->saveXML()); 
// fclose-> lo obvio ..
fclose($fp); 

// direccionamos a la misma pagina
header('Location:index.php'); 

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Formularios en Google Maps</title>
<link href="css/index.css" rel="stylesheet" type="text/css" />
<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAA5I4IsDjGbqCgkN79fAi9pRTkwnhgV6_vctxWJVrGYlpsGc2BlxTJdx7r5DOQtgLyFPcpjwxnEx_aOA" type="text/javascript"></script>
<script type="text/javascript" src="jquery-1.2.6.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {

var mark;
var pointA;

if (GBrowserIsCompatible()) {
var m = $("#map")[0];

if(m) {
var map = new GMap2(m);
var start = new GLatLng(-33.305497,-66.336565);
var zoomLevel = 15;
map.setCenter(start, zoomLevel);
map.setUIToDefault();
$.get('markers.xml',function(data) { 
$(data).find('marker').each(function(){
var lat = $(this).attr('lat'); 
var lng = $(this).attr('lng'); 
var html = $(this).attr('name')+"<br />";
html += $(this).attr('msg')+"<br />";
html += $(this).attr('link');
var point = new GLatLng(lat,lng); 
var marker = new GMarker(point); 

map.addOverlay(marker); 

GEvent.addListener(marker, "click", function() { 
marker.openInfoWindowHtml(html); 
});

});

});

// en cada nueva marca aparecerá el formulario HTML
GEvent.addListener(map, 'click', function(overlay, point){
if(mark) {
map.removeOverlay(mark);
}
if(point) {
pointA = new GPoint(point.x, point.y);
mark = new GMarker(pointA);
map.addOverlay(mark);
map.getCenter(point);
var lat = point.y;
var lng = point.x;
var form = "<form action=\"index.php\" method=\"post\"><input type=\"hidden\" name=\"lat\" value=\""+lat+"\"/> <input type=\"hidden\" name=\"lng\" value=\""+lng+"\" /> Name:<input type=\"text\" name=\"name\" value=\"\" /><br /> Msg:<input type=\"text\" name=\"msg\" value=\"\" /><br />Link:<input type=\"text\" name=\"link\" value=\"\" /><br /><input type=\"submit\" name=\"submit\" value=\"save\" /></form>";
map.openInfoWindowHtml(point,form);
}
});
}
}
});
</script>

</head>

<body>
<div id="menuCabecera" class="menuCabecera">Para Agregar una Marca, haga un clic sobre el lugar deseado, complete el formulario y guarde la marca. Puede que tenga que refrescar la pagina, para que aparezca la marca agregada.</div>
<div id="tipoMarcas">
  <div class="titulo" title="Arrastrar Ventanita">
  Tipos de Marcas</div>
  <div class="tiposMarcasLista">
  <li>Fotografias
  <li>Viviendas
  <li>Comercios  </div>
  </div>
<div id="map"></div>
<div class="footer">
Copyright 2009 &copy; - Todos los derechos reservados a Claudio A. Marrero y HandSmart San Luis.</div>
</body>
</html>
  #2 (permalink)  
Antiguo 14/04/2009, 10:25
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: Java Script, XML y Temporales de Internet

Como con cualquier fuente externa que no queremos que se cachee, basta agregar en la url un valor randómico:
Código PHP:
var archivo='algo.xml?'+Math.random(); 
o
Código PHP:
var archivo='algo.xml?id=1&'+Math.random(); 
o
Código PHP:
var archivo='algo.xml?id=1&'+new Date().getTime(); 
  #3 (permalink)  
Antiguo 04/05/2009, 14:33
(Desactivado)
 
Fecha de Ingreso: enero-2008
Ubicación: Mendoza
Mensajes: 458
Antigüedad: 16 años, 3 meses
Puntos: 2
Exclamación Respuesta: Java Script, XML y Temporales de Internet

Bueno, ahora supongamos que desde la estructura html llamo un Java Script..

<script type="text/javascript" src="../libreria/ajax.js"></script>

Este java script una vez que se carga no se vuelve a cargar cuando actualizo la pagina.. es decir queda en los temporales...

probe hacer lo siguiente

Código PHP:

<?
$fecha 
time();
?>
<script type="text/javascript" src="../libreria/ajax.js?<? echo $fecha?>"></script>
Pero cuando actualizo la pagina sigue sin actualizarse la info...

Lo que necesito es que no cachee el javascript o algo asi...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:39.