Browsers Memory

martes, 2 de septiembre de 2008 Sin comentarios

Browsers Memory

Primero tengo que decir que descarges el Google Chrome Browser (http://www.google.com/chrome)

En este ejemplo todos los navegadores abrieron 4 tabs (las mismas tabs cada uno):

Opera 9.51 resulta ser el mejor y MSIE 8 el peor.

Olvide actualizar a Opera 9.52 pero estoy seguro que son los mismos resultados.

Categories: web Tags:

CSS3 and Browsers

martes, 2 de septiembre de 2008 Sin comentarios

Disculpa, esta entrada solo esta disponible en English.

Categories: web Tags:

CSS and MSIE

lunes, 1 de septiembre de 2008 Sin comentarios

CSS and MSIE

MSIE (Microsoft Internet Explorer) CSS Hack:

.somediv {
    height: 15px; /* all browsers */
    #height: 20px; /* all IE Browser */
    _height: 25px; /* only IE6 Browser */
}

MSIE usa comentarios condicionales: (http://msdn.microsoft.com/en-us/library/ms537512.aspx)

 <!--[if IE 6]>
    <script src="js/iefix.js" type="text/javascript"></script>
    <link rel="stylesheet"  href="css/iefix.css" type="text/css"></style>
    <div> some html code </div>
<![endif]-->

En este ejemplo si se usa IE6 agrega este codigo:

<script src="js/iefix.js" type="text/javascript"></script>
<link rel="stylesheet"  href="css/iefix.css" type="text/css"></style>
<div> some html code </div>

Para los navegadores viejos (MSIE) soporta :hover, :active y :focus:
http://www.xs4all.nl/~peterned/csshover.html

<style type="text/css">
    body {
        behavior:url("csshover.htc");
    }
</style>

Hacer que MSIE sea compatible con los estándares. Arregla algunos detalles del HTML y CSS y hace PNG transparentes funciona correctamente en IE5 y IE6 http://code.google.com/p/ie7-js/

Categories: web Tags: ,

Safe and Dirty Remote XMLHttpRequest

miércoles, 27 de agosto de 2008 2 comentarios

Safe and Dirty Remote XMLHttpRequest Algunas veces necesitamos que el XMLHttpRequest funcione en diferentes dominios, una solucion simple, necesitas JavaScript y Perl:

El XMLHttpRequest(); ejemplo:

var req = new XMLHttpRequest() // IE7, Firefox, Safari, Opera
req.open('GET', 'http://localhost/cgi-bin/remote.pl?url='+url, false);
req.send(null);

Para hacer que funcione usamos remote.pl:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/usr/bin/perl
use LWP::UserAgent;
use CGI qw(:standard);
print "Content-type: text/plain\n";
my $url = param ('url');
$ua = LWP::UserAgent->new;
$ua->agent("Mozilla/8.0");
$req = HTTP::Request->new(GET => $url);
$req->header('Accept' => 'text/html');
$res =$ua->request($req);
if ($res->is_success) {
	$page = $res->content;
} else {
	$page = "error";
} print $page;

Aqui un ejemplo:

El remote.pl se puede implementar mucho mejor (metodos GET y POST, parametros y sus valores).

Categories: develop, web Tags: ,

JSC JavaScript Collection

domingo, 24 de agosto de 2008 Sin comentarios

JSC JavaScript Collection

Necesitamos jsmin y gzip, compilamos el jsmin.c:

gcc -o jsmin jsmin.c

Script que genera una coleccion de todos los javascripts:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/bin/bash
 
echo "JavaScript Collection"
 
  EXPECTED_ARGS=1
  E_BADARGS=65
 
if [ $# -ne $EXPECTED_ARGS ]
then
  echo "Usage: `basename $0` {path of the javascripts}"
  exit $E_BADARGS
fi
 
# Join the javascript scripts in one file
cat $1/*.js >> $1/.__fullscripts.tmp
 
# use JSMIN to minifier the script
cat $1/.__fullscripts.tmp | jsmin > $1/.__fullscripts.min.tmp
 
# awk remove the first blank line, gzip compress the script
awk 'FNR>1{print}' $1/.__fullscripts.min.tmp | gzip > $1/collection_scripts.js.gz
 
# remove temporal files
rm $1/.__fullscripts.tmp $1/.__fullscripts.min.tmp

Modo de uso: jsc public_html/web/js/

Ahora creamos un script de php que remplazara a los javascripts:

<script type="text/javascript" src="collection_scripts.php"></script>

Contenido de collection_scripts.php:

<?php
    header("Content-type: text/javascript; charset: UTF-8?");
    header("Content-Encoding: gzip");
    readfile("collection_scripts.js.gz");
?>
Categories: unix/linux Tags: , ,

Switch to our mobile site