HOSPEDAGEM DE SITE - ALGUEM PODE ME AJUDAR
KERPLUNK, ja fiz o teste de conexao com bd mysql... desenvolvi um aplicativo para realizar testes de inserts, select e update no banco e ocorreu tudo normal de forma bem mais rapida do que o aplicativo hospedado (site)
foi onde tive esta duvida (motivo do tópico) e pedir ajuda a voces..
fiz tambem conforme o ALEXMARCHI sujeriu e nao tive resultado.
destacando tambem o que OCELOT falou sobre o VIEWSTATE.
pode ser o viewstate? ja que a pagina carrega o gridview com 50 linhas e utilizo o evento textchanged do textbox no gridview para gravar os dados no banco.
peço ajuda a vocês para solucionar este problema.
Obrigado!
foi onde tive esta duvida (motivo do tópico) e pedir ajuda a voces..
fiz tambem conforme o ALEXMARCHI sujeriu e nao tive resultado.
destacando tambem o que OCELOT falou sobre o VIEWSTATE.
pode ser o viewstate? ja que a pagina carrega o gridview com 50 linhas e utilizo o evento textchanged do textbox no gridview para gravar os dados no banco.
peço ajuda a vocês para solucionar este problema.
Obrigado!
Se o ViewState estiver muito grande ele vai deixar lento todo post que for feito, se o AutoPostBack dos seus texts estiverem como true então ele efetua um PostBack cada vez que você altera o texto e o foco sai do TextBox, se for este o caso e o ViewState estiver muito grande com certeza vai deixar o sistema lento.
é bem simples ver o tamanho do ViewState, depois de abrir a página no navegador apague a barra de endereço e digite o seguinte nela, seguido de enter:
javascript:alert(document.getElementById([ô]__VIEWSTATE[ô]).value.length)
Isso vai mostrar um dialogo com a quantidade de caracteres do ViewState, único detalhe é que me parece não funcionar no FireFox, no Opera, Chrome e IE isso funciona
é bem simples ver o tamanho do ViewState, depois de abrir a página no navegador apague a barra de endereço e digite o seguinte nela, seguido de enter:
javascript:alert(document.getElementById([ô]__VIEWSTATE[ô]).value.length)
Isso vai mostrar um dialogo com a quantidade de caracteres do ViewState, único detalhe é que me parece não funcionar no FireFox, no Opera, Chrome e IE isso funciona
OCELOT , o retorno foi de : 32780
é 32k na ViewState é muita coisa... tá na hora de chamar o AJAX pro jogo...
ola bom dia a todos...
com ajax o tempo de resposta e mais rapido?
ou so evita o postback ?
com ajax o tempo de resposta e mais rapido?
ou so evita o postback ?
Citação::
ola bom dia a todos...
com ajax o tempo de resposta e mais rapido?
ou so evita o postback ?
Citação::
ola bom dia a todos...
com ajax o tempo de resposta e mais rapido?
ou so evita o postback ?
AJAX, primeiro de tudo, entenda o que é
ola, KERPLUNK.
peguei este exemplo aqui : http://www.macoratti.net/09/08/aspn_wsx1.htm
e tentei adapta-lo ao meu projeto porem nao funciona...
obs. quando executo o arquivo .asmx com (comando= Crtl+Shift+W) funciona belezinha.
o problema esta no script da pagina... eu acho...rsrsrs
se alguem puder me ajudar. o codigo é esse:
no arquivo .asmx:
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.ComponentModel
Imports MySql.Data.MySqlClient
Imports System.Web.UI.WebControls
[ô] To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
<System.Web.Script.Services.ScriptService()> _
<System.Web.Services.WebService(Namespace:=[Ô]http://tempuri.org/[Ô])> _
<System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<ToolboxItem(False)> _
Public Class SalvarDados
Inherits System.Web.Services.WebService
Public vData As String
Public myCONjavaScript As MySql.Data.MySqlClient.MySqlConnection
<WebMethod()> _
Public Sub salvaDados(ByVal numcot As String, ByVal idprod As String, ByVal idempr As String, ByVal idforn As String, ByVal preco As String)
[ô]Try
myCONjavaScript = New MySql.Data.MySqlClient.MySqlConnection([Ô]server=[Ô] & MySQLHost & [Ô];User id=[Ô] & MySQLUsuario & [Ô];password=[Ô] & MySQLSenha & [Ô];database=[Ô] & MySQLDataBase)
vData = Format(CType(Now, Date), [Ô]yyyy-MM-dd hh:mm:ss[Ô])
Dim SqlWebServ As String = [Ô]insert into itens_cot (numcot, idprod, idempr, idforn, preco, data) [Ô] & _
[Ô]values(@numcot, [Ô] & _
[Ô]@idprod, [Ô] & _
[Ô]@idempr, [Ô] & _
[Ô]@idforn, [Ô] & _
[Ô]@preco, [Ô] & _
[Ô]@data)[Ô]
Dim cmd As New MySqlCommand(SqlWebServ, myCONjavaScript) [ô] SqlCommand(SQL, sqlcon)
cmd.CommandType = CommandType.Text
cmd.Parameters.AddWithValue([Ô]@numcot[Ô], numcot)
cmd.Parameters.AddWithValue([Ô]@idprod[Ô], idprod)
cmd.Parameters.AddWithValue([Ô]@idempr[Ô], idempr)
cmd.Parameters.AddWithValue([Ô]@idforn[Ô], idforn)
cmd.Parameters.AddWithValue([Ô]@preco[Ô], preco)
cmd.Parameters.AddWithValue([Ô]@data[Ô], vData)
If myCONjavaScript.State = ConnectionState.Closed Then
myCONjavaScript.Open()
End If
cmd.ExecuteNonQuery()
myCONjavaScript.Close()
[ô]#####################################################
[ô]Catch ex As Exception
[ô] End Try
End Sub
End Class
agora na pagina :
<script language=[Ô]javascript[Ô] type=[Ô]text/javascript[Ô]>
function pageLoad() {
$addHandler($get([Ô]btnHtmlSalvar[Ô]), [Ô]click[Ô], inserirDados);
}
function inserirDados() {
SalvarDados.salvaDados($get([Ô]txtCotacao[Ô]).value, $get([Ô]txtCodProd[Ô]).value, $get([ô]txtCodEmpr[ô]).value, $get([ô]txtCodForn[ô]).value, $get([ô]txtPrec[ô]).value);
$get([Ô]Label3[Ô]).innerHTML = [Ô]Salvo com sucesso[Ô];
}
</script>
peguei este exemplo aqui : http://www.macoratti.net/09/08/aspn_wsx1.htm
e tentei adapta-lo ao meu projeto porem nao funciona...
obs. quando executo o arquivo .asmx com (comando= Crtl+Shift+W) funciona belezinha.
o problema esta no script da pagina... eu acho...rsrsrs
se alguem puder me ajudar. o codigo é esse:
no arquivo .asmx:
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.ComponentModel
Imports MySql.Data.MySqlClient
Imports System.Web.UI.WebControls
[ô] To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
<System.Web.Script.Services.ScriptService()> _
<System.Web.Services.WebService(Namespace:=[Ô]http://tempuri.org/[Ô])> _
<System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<ToolboxItem(False)> _
Public Class SalvarDados
Inherits System.Web.Services.WebService
Public vData As String
Public myCONjavaScript As MySql.Data.MySqlClient.MySqlConnection
<WebMethod()> _
Public Sub salvaDados(ByVal numcot As String, ByVal idprod As String, ByVal idempr As String, ByVal idforn As String, ByVal preco As String)
[ô]Try
myCONjavaScript = New MySql.Data.MySqlClient.MySqlConnection([Ô]server=[Ô] & MySQLHost & [Ô];User id=[Ô] & MySQLUsuario & [Ô];password=[Ô] & MySQLSenha & [Ô];database=[Ô] & MySQLDataBase)
vData = Format(CType(Now, Date), [Ô]yyyy-MM-dd hh:mm:ss[Ô])
Dim SqlWebServ As String = [Ô]insert into itens_cot (numcot, idprod, idempr, idforn, preco, data) [Ô] & _
[Ô]values(@numcot, [Ô] & _
[Ô]@idprod, [Ô] & _
[Ô]@idempr, [Ô] & _
[Ô]@idforn, [Ô] & _
[Ô]@preco, [Ô] & _
[Ô]@data)[Ô]
Dim cmd As New MySqlCommand(SqlWebServ, myCONjavaScript) [ô] SqlCommand(SQL, sqlcon)
cmd.CommandType = CommandType.Text
cmd.Parameters.AddWithValue([Ô]@numcot[Ô], numcot)
cmd.Parameters.AddWithValue([Ô]@idprod[Ô], idprod)
cmd.Parameters.AddWithValue([Ô]@idempr[Ô], idempr)
cmd.Parameters.AddWithValue([Ô]@idforn[Ô], idforn)
cmd.Parameters.AddWithValue([Ô]@preco[Ô], preco)
cmd.Parameters.AddWithValue([Ô]@data[Ô], vData)
If myCONjavaScript.State = ConnectionState.Closed Then
myCONjavaScript.Open()
End If
cmd.ExecuteNonQuery()
myCONjavaScript.Close()
[ô]#####################################################
[ô]Catch ex As Exception
[ô] End Try
End Sub
End Class
agora na pagina :
<script language=[Ô]javascript[Ô] type=[Ô]text/javascript[Ô]>
function pageLoad() {
$addHandler($get([Ô]btnHtmlSalvar[Ô]), [Ô]click[Ô], inserirDados);
}
function inserirDados() {
SalvarDados.salvaDados($get([Ô]txtCotacao[Ô]).value, $get([Ô]txtCodProd[Ô]).value, $get([ô]txtCodEmpr[ô]).value, $get([ô]txtCodForn[ô]).value, $get([ô]txtPrec[ô]).value);
$get([Ô]Label3[Ô]).innerHTML = [Ô]Salvo com sucesso[Ô];
}
</script>
Se você quiser fazer a [Ô]tradução[Ô] dos seus métodos para AJAX, seria melhor criar outro tópico, o assunto pode se estender bastante.
Tópico encerrado , respostas não são mais permitidas