Autor Tema: (Curiosidad) ¿Cómo funciona la longitud del asunto de un hilo?

0 Usuarios y 1 Visitante están viendo este tema.

26 Noviembre, 2019, 02:53 pm
Leído 2267 veces

manooooh

  • Matemático
  • Mensajes: 2,989
  • País: ar
  • Karma: +1/-0
  • Sexo: Masculino
Hola!

Siempre debemos tener cuidado en que nuestros títulos no sobrepasen la longitud de caracteres máxima permitida por el foro. Nos damos cuenta porque cuando vamos por buena parte del título llega un momento en que el foro nos "bloquea" la posibilidad de seguir escribiendo.

Incluso si hacemos copy&paste. Y está bien.

Supongamos que (no los conté) la longitud máxima de los caracteres para el título es de \( 200 \). El que ose pasar ese número no podrá.

Ahora bien, cuando uno quiere responder a cualquier primer mensaje (sea que apreta en "Respuesta" o "Cita") naturalmente en el título se antepone la frase "Re: ", haciendo alusión a que estamos respondiendo al mensaje.



Sin embargo para mi asombro veo que ahora la longitud máxima cambia: pasa de \( 200 \) a \( 204 \) caracteres ("R" "e" ":" y el espacio " "). Y el título original NO se corta, se mantiene el original. Incluso si el título fuese de \( 200 \) caracteres al responder no se cortan los últimos \( 4 \) caracteres.

¿Cómo es posible esto? ¿Los primeros mensajes y los subsiguientes son tratados de distinta manera por el foro: son dos objetos distintos?

Siempre me ha llamado la atención y me intriga saber el motivo de esto.

Gracias!!
Saludos

26 Noviembre, 2019, 06:33 pm
Respuesta #1

Masacroso

  • Héroe
  • Mensajes: 2,144
  • País: es
  • Karma: +4/-0
En general en un archivo HTML cada caja de texto tiene asignada una longitud máxima, es la práctica común, ya que eso evita todo tipo de problemas. Sin embargo un texto derivado (generado a partir de otro) puede tener otras propiedades: mayor longitud, otro estilo, etcétera.

Mira aquí:
https://www.w3schools.com/tags/tag_textarea.asp
https://www.w3schools.com/html/html_form_input_types.asp

En Firefox siempre puedes ver el código de una pagina web que estés viendo pulsando la tecla F12. Por ejemplo, la celda donde estoy escribiendo ahora está definida en HTML con este código:

Código: [Seleccionar]
<textarea cols="75" rows="7" style="width: 95%; height: 100px;" name="message" tabindex="1">Aquí va el texto que escribes al postear en el foro</textarea>
La caja de texto del título de este tema tiene esta definición:

Código: [Seleccionar]
<td style="padding-left: 6px;" id="top_subject" width="85%" valign="middle">
Tema: (Curiosidad) ¿Cómo funciona la longitud del asunto de un hilo? &nbsp;(Leído 13 veces)
</td>

Aquí al ya estar escrito tiene unas características diferentes a las que tendría cuando lo estabas escribiendo. Cuando se abre un tema y estás escribiendo el título sale esta definición de la caja que contiene el texto:

Código: [Seleccionar]
<input type="text" name="subject" tabindex="1" size="80" maxlength="80">
Parece que la longitud máxima son 80 caracteres.

26 Noviembre, 2019, 10:45 pm
Respuesta #2

manooooh

  • Matemático
  • Mensajes: 2,989
  • País: ar
  • Karma: +1/-0
  • Sexo: Masculino
Hola Masacroso

En general en un archivo HTML cada caja de texto tiene asignada una longitud máxima, es la práctica común, ya que eso evita todo tipo de problemas. Sin embargo un texto derivado (generado a partir de otro) puede tener otras propiedades: mayor longitud, otro estilo, etcétera.

Mira aquí:
https://www.w3schools.com/tags/tag_textarea.asp
https://www.w3schools.com/html/html_form_input_types.asp

En Firefox siempre puedes ver el código de una pagina web que estés viendo pulsando la tecla F12. Por ejemplo, la celda donde estoy escribiendo ahora está definida en HTML con este código:

Código: [Seleccionar]
<textarea cols="75" rows="7" style="width: 95%; height: 100px;" name="message" tabindex="1">Aquí va el texto que escribes al postear en el foro</textarea>
La caja de texto del título de este tema tiene esta definición:

Código: [Seleccionar]
<td style="padding-left: 6px;" id="top_subject" width="85%" valign="middle">
Tema: (Curiosidad) ¿Cómo funciona la longitud del asunto de un hilo? &nbsp;(Leído 13 veces)
</td>

Aquí al ya estar escrito tiene unas características diferentes a las que tendría cuando lo estabas escribiendo. Cuando se abre un tema y estás escribiendo el título sale esta definición de la caja que contiene el texto:

Código: [Seleccionar]
<input type="text" name="subject" tabindex="1" size="80" maxlength="80">
Parece que la longitud máxima son 80 caracteres.

Muchas gracias! Conocía el "truquillo" del F12 pero no había recapacitado en probarlo acá ;D.

Pero todavía la duda existe. Te invito a que pruebes a cambiar el título de cualquier tema que hayas creado a su máxima longitud (sería 80), te fijes con F12 que diga "80", luego vas a "Responder", y veas que aunque en esa caja diga que la longitud máxima siga siendo "80" ¡con el "Re: " + título original ha sobrepasado esa cantidad! Obviamente luego editás el título al original y borrás ese mensaje creado.

Saludos

26 Noviembre, 2019, 11:52 pm
Respuesta #3

Masacroso

  • Héroe
  • Mensajes: 2,144
  • País: es
  • Karma: +4/-0
Pero todavía la duda existe. Te invito a que pruebes a cambiar el título de cualquier tema que hayas creado a su máxima longitud (sería 80), te fijes con F12 que diga "80", luego vas a "Responder", y veas que aunque en esa caja diga que la longitud máxima siga siendo "80" ¡con el "Re: " + título original ha sobrepasado esa cantidad! Obviamente luego editás el título al original y borrás ese mensaje creado.

Saludos

Quizá no me he explicado bien antes: la limitación es a lo que escribes, pero el texto "Re: lo que sea" es un texto generado automáticamente a partir de otro ya previamente escrito (el "lo que sea"), y no sigue las mismas reglas de entrada de texto.

27 Noviembre, 2019, 12:14 am
Respuesta #4

manooooh

  • Matemático
  • Mensajes: 2,989
  • País: ar
  • Karma: +1/-0
  • Sexo: Masculino
Hola

Quizá no me he explicado bien antes: la limitación es a lo que escribes, pero el texto "Re: lo que sea" es un texto generado automáticamente a partir de otro ya previamente escrito (el "lo que sea"), y no sigue las mismas reglas de entrada de texto.

Comprendo. O sea que son dos objetos distintos porque una no tiene la restricción de la cantidad máxima; si fueran iguales habría un fallo, porque si todos esos campos son \( 80 \) entonces ningún título del foro puede tener \( 84 \) caracteres, pero como podemos escribirlos con \( 84 \) caracteres entonces son dos objetos distintos, creo yo.

Saludos

27 Noviembre, 2019, 12:22 am
Respuesta #5

Masacroso

  • Héroe
  • Mensajes: 2,144
  • País: es
  • Karma: +4/-0
Hola

Quizá no me he explicado bien antes: la limitación es a lo que escribes, pero el texto "Re: lo que sea" es un texto generado automáticamente a partir de otro ya previamente escrito (el "lo que sea"), y no sigue las mismas reglas de entrada de texto.

Comprendo. O sea que son dos objetos distintos porque una no tiene la restricción de la cantidad máxima; si fueran iguales habría un fallo, porque si todos esos campos son \( 80 \) entonces ningún título del foro puede tener \( 84 \) caracteres, pero como podemos escribirlos con \( 84 \) caracteres entonces son dos objetos distintos, creo yo.

Saludos

Míralo como un programa: supón que tienes un programa que te pide que ingreses un número entre cero y cien. Lo ingresas. Luego el programa le suma veinte al número que hayas ingresado y te lo imprime en pantalla. Entonces es posible que el número que aparezca en pantalla sea mayor a cien porque la variable dada ha sido transformada.

Pues lo mismo pasa con el texto que introduces: actúa como una variable, la cual está limitada a un rango de valores. Luego esa variable es transformada de diferentes maneras. Algunas de esas transformaciones le añaden cadenas de texto adyacentes y por tanto aumentan su longitud original.

27 Noviembre, 2019, 12:46 am
Respuesta #6

manooooh

  • Matemático
  • Mensajes: 2,989
  • País: ar
  • Karma: +1/-0
  • Sexo: Masculino
Hola

Míralo como un programa: supón que tienes un programa que te pide que ingreses un número entre cero y cien. Lo ingresas. Luego el programa le suma veinte al número que hayas ingresado y te lo imprime en pantalla. Entonces es posible que el número que aparezca en pantalla sea mayor a cien porque la variable dada ha sido transformada.

Pues lo mismo pasa con el texto que introduces: actúa como una variable, la cual está limitada a un rango de valores. Luego esa variable es transformada de diferentes maneras. Algunas de esas transformaciones le añaden cadenas de texto adyacentes y por tanto aumentan su longitud original.

Pero en ese caso existiría un "desbordamiento", un overflow. Y no ocurre. Si yo a C le declaro una variable de tipo entera, y muestro por pantalla el número sumado en dos unidades, cuando escriba su límite superior pues sumado dos dará otro número, y no ese número aumentado en dos.

Pero en el foro no pasa; no hay ninguna interrupción, ni ninguna excepción. Simplemente "pasa". Además no estamos trabajando con conjuntos infinitos donde \( \infty+2=\infty \) sino que existe la posibilidad de desbordamiento (cosa que no pasa en el foro). Por eso mi inquietud.

Saludos