Jump to content


Photo

Duvída Sobre Include


  • Faça o login para participar
9 replies to this topic

#1 lazerediversao

lazerediversao

    Lazer e Diversão - O seu portal de entretenimento é aqui.

  • Usuários
  • 256 posts
  • Sexo:Masculino
  • Localidade:Guarulhos / São Paulo

Posted 11/10/2007, 21:09

Olá pessoal me surgiu uma dúvida...
Estou montando meu portal onde no centro do portal ficará o conteúdo, até ai nenhum problema, para exibir esse conteúdo central na página principal sem que eu precise mudar de pagina teria duas alternativas:

1ª Usar frames
2ª Usar ajax

As duas iriam atender minha necessidade, porem teria futuros problemas com indexação dos sistemas de buscas.
Pensa daqui, pensa dali e tive a seguinte idéia.

http://www.meusite.com/?link=principal

Então no código fonte teria


Maravilha era isso que eu queria, mas ai me surgiu uma dúvida, conforme eu aumentar a quantidade de Includes eu terei problemas com lentidão e carregamento de paginas desnecessárias para o momento, porque até onde eu sei o Include ele é carregado primeiro que o código ASP não é isso ???

Sendo assim ele carregaria todos os includes existentes e depois ele iria exibir somente o que solicitei...
Não sei se fui claro...

Darei mais um exemplo...

Suponha que acesso http://www.meusite.com/?link=pg01


Ao meu entender aconteceria o seguinte...

Carregaria primeiro os Includes no exemplo acima seriam carregadas as paginas principal.asp, pg01.asp e pg02.asp
Somente após o carregamento das mesmas é que seria executado o filtro para exibir somente a pg01.asp

Ufa hehe é só essa minha dúvida.
################# DADOS #################
# NOME: Rafael T. Coelho
# SITE: Lazer e Diversão
# CONHECIMENTOS: HTML, Java Script, CSS e ASP
#######################################

#2 sk15

sk15

    Super Veterano

  • Usuários
  • 2071 posts
  • Sexo:Masculino
  • Localidade:SP - SP

Posted 11/10/2007, 21:50

É ira ocorrer isso infelismente o ASP é extremamente deficiente nessa parte de "includes" até por que esse códido de include não é dele e sim da linguagem SSI que foi emprestado a ele em forma de modulo (DLL), por isso que o ASP não consegue se comunicar com o SSI.

Por isso que você nunca ve páginas ASP múltiplas (tipo: default.asp?link=XXXX) e sim sempre páginas simples (home.asp, contato.asp, imagens.asp) porque é ati-semântico.

Há 4 soluções:
1- Deixa do jeito que está e paga o preço pela demora, porém se não tiver muitos dados pode deixar.
2- Passa para banco de dados o ID que está dentro do banco
3- Cria arquivos separados como já disse
4- Troca de Servidor e concequentemente de linguagem como PHP ou JSP por exemplo ...

Exemplo em PHP:
<?php
$link = $_GET["link"]; // Pega o valor da URL: arquivo.php?link=esse-valor

// Verifica se há um valor e o arquivo existe
if (!empty($link) && file_exists($link)) {
 // Inclue o arquivo da URL tipo: home.php
 include_once($link);
} else {
 // Caso a pessoa coloque um arquivo que não existe ou um valor vazio mostra aqui
 include_once("pagina_erro.php");
}
?>

Edição feita por: sk15, 11/10/2007, 21:52.


#3 DiegoCoruja

DiegoCoruja

    12 Horas

  • Usuários
  • 178 posts
  • Sexo:Masculino
  • Localidade:São Vicente - SP
  • Interesses:PROGRAMAÇÃO, WEB DESIGN, ESPORTE,

Posted 11/10/2007, 22:32

acho que você poderia usar o iframe dentro de um tabela
eu uso assim:
<iframe name="conteudo" scrolling="yes" widht="100%" height="100%">
o menu dentro de um include
<!--#include file="menu.asp"-->
os links do menu mando para dentro desse iframe fica rapido!
====================================================
Diego M.
Html, CSS, Javascript, Asp, Asp.net, Php, Sql Server, Mysql, Oracle, VB.NET, VBA
====================================================

#4 lazerediversao

lazerediversao

    Lazer e Diversão - O seu portal de entretenimento é aqui.

  • Usuários
  • 256 posts
  • Sexo:Masculino
  • Localidade:Guarulhos / São Paulo

Posted 11/10/2007, 22:32

É ira ocorrer isso infelismente o ASP é extremamente deficiente nessa parte de "includes" até por que esse códido de include não é dele e sim da linguagem SSI que foi emprestado a ele em forma de modulo (DLL), por isso que o ASP não consegue se comunicar com o SSI.

Por isso que você nunca ve páginas ASP múltiplas (tipo: default.asp?link=XXXX) e sim sempre páginas simples (home.asp, contato.asp, imagens.asp) porque é ati-semântico.

Há 4 soluções:
1- Deixa do jeito que está e paga o preço pela demora, porém se não tiver muitos dados pode deixar.
2- Passa para banco de dados o ID que está dentro do banco
3- Cria arquivos separados como já disse
4- Troca de Servidor e concequentemente de linguagem como PHP ou JSP por exemplo ...

Exemplo em PHP:

<?php
$link = $_GET["link"]; // Pega o valor da URL: arquivo.php?link=esse-valor

// Verifica se há um valor e o arquivo existe
if (!empty($link) && file_exists($link)) {
 // Inclue o arquivo da URL tipo: home.php
 include_once($link);
} else {
 // Caso a pessoa coloque um arquivo que não existe ou um valor vazio mostra aqui
 include_once("pagina_erro.php");
}
?>


Obrigado pela resposta meu caro sk15, eu inclusive estava desistindo de fazer isto... :(
Inclusive eu postei a mesma dúvida em outro fórum não sei se posso citar nomes...
Mas continuando um colega me mostrou a solução de uma outra forma, mas que me dará um resultado melhor que o que eu precisaria utilizando Server.Execute, que eu já conheço e inclusive já havia utilizado, mas devido ao fato de eu estar um pouco enferrujado hehe acabei esquecendo de sua funcionalidade...

Bem, portanto o que eu precisava eu já consegui hehe, mesmo assim muito obrigado pela informação transmitida, afinal eu não sabia dessa historinha do Include...
################# DADOS #################
# NOME: Rafael T. Coelho
# SITE: Lazer e Diversão
# CONHECIMENTOS: HTML, Java Script, CSS e ASP
#######################################

#5 sk15

sk15

    Super Veterano

  • Usuários
  • 2071 posts
  • Sexo:Masculino
  • Localidade:SP - SP

Posted 11/10/2007, 22:44

Pensado bem agora que você disse me veio outra ideia, é meio gambiarra e anti-semântica também mas deve funcionar você pode usar o método HTTP do ASP (o mesmo do Ajax) para ler sua página e retonar só o HTML veja um exemplo:

<html>
<body>

<%
link = Request.QueryString("link") ' Aqui vem seu arquivo: contato.asp

Set xmlhttp = Server.CreateObject("Microsoft.XMLHTTP")  
xmlhttp.open "GET", "http://www.seusite.com/" & link, false
xmlhttp.send()

' Retorna o HTML somente sem verifica o código de erro etc ...
Response.Write xmlhttp.responsetext
%>

</body>
</html>

Básicamente é isso é como se fosse um include ....
Eu nem lembrava dessa função "Server.Execute" até porque faz 1.000 anos que não faço sites em ASP últimamente só tenho trabalho com PHP ...

Edição feita por: sk15, 11/10/2007, 22:45.


#6 leanjo

leanjo

    Doutor

  • Usuários
  • 912 posts
  • Sexo:Não informado
  • Interesses:...

Posted 12/10/2007, 00:46

"Por isso que você nunca ve páginas ASP múltiplas (tipo: default.asp?link=XXXX) e sim sempre páginas simples (home.asp, contato.asp, imagens.asp) porque é ati-semântico."

?link=XXXX nao quer dizer que é um include
trilhoes de sites em asp usam ?link=XXXX onde o xxx pode ser uma tabela no BD



vc pode usar function
tenho 5 mil linhas em um include e todas com function determinado

#7 sk15

sk15

    Super Veterano

  • Usuários
  • 2071 posts
  • Sexo:Masculino
  • Localidade:SP - SP

Posted 12/10/2007, 01:12

Eu não disse que não era usado QueryString em ASP :wacko: :rolleyes:

O que eu tentei dizer é que isso não é usual para se fazer "modularização de design com querystring", pois isso no ASP é inviavel se comparado com outras linguagens, como eu disse nas minhas sugestão de Nº2 ele poderia usar um banco de dados e puxar o ID da página que estava no banco via QueryString!

* E trilhões de site você está forçado até d+, o PHP que é atualmente a linguagem mais popular existentese estimasse que pussua +20% de todos os servidores da web isso chega a alguns milhões e não trilhões, como o ASP que está caindo de moda faz tempo vai ter trilhões :blink:

.....
?link=XXXX nao quer dizer que é um include
trilhoes de sites em asp usam ?link=XXXX onde o xxx pode ser uma tabela no BD
.....



#8 leanjo

leanjo

    Doutor

  • Usuários
  • 912 posts
  • Sexo:Não informado
  • Interesses:...

Posted 12/10/2007, 03:40

bom, nao vamos comecar discussão atoa...
trilhos foi forca de expressao

asp saindo de moda?

fica ai minha dica de novo no uso de function

#9 Agente Linhares

Agente Linhares

    fuis...abraços!

  • Ex-Admins
  • 3138 posts
  • Sexo:Não informado
  • Localidade:Biritiba Mirim-SP

Posted 21/10/2007, 22:40

entao....acrescentando ao assunto:

- o server execute provavelmente resolverá seu problema.

hehe, num recente projeto que participei fizemos justamente isso que vc falou....usamos os includes da vida e quando o lance começou a crescer, vixi....ja pode imaginar né? tinha um arquivo que a gente nem dava pra abrir ele pelo dreamweaver que o pc travava, porque abria todas as pgs "incluidas"...rsrs

ai que veio a ideia: server.execute

resolveu nosso problema.

flws :D
> Busca On-line - A Busca que faltava na Internet! - Cadastre-se!
---------------------------------------------------------------------------
> BRdesign.NET - Soluções em Websites e Sistemas E-Commerce.
---------------------------------------------------------------------------
> BR-ecommerce - Sua loja virtual na internet! - Apenas R$99,90 mensais (hospedagem inclusa)!

#10 roberio

roberio

    Novato no fórum

  • Usuários
  • 1 posts
  • Sexo:Não informado

Posted 27/10/2007, 19:38

Não seria melhor você criar várias páginas dessa maneira:

<!--#include virtual="cabecalho.asp"-->
conteúdo específico
<!--#include virtual="rodape.asp"-->

Ao invés de você colocar o conteúdo dinâmico no include, você coloca apenas os arquivos fixos. Dessa forma, você não vai ter problemas com lentidão na página.

Pelo menos essa é minha sugestão.




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq