WN

WN (https://www.wn.se/forum/index.php)
-   Klientsidans teknologier, design och grafik (https://www.wn.se/forum/forumdisplay.php?f=12)
-   -   script/kod för "dynamic content without reload" (https://www.wn.se/forum/showthread.php?t=1053902)

Linuus 2012-06-24 19:50

Prova att "escapea" scriptet. Ändra sista taggen till <\/script>. Inte säkert att det funkar ändå pga att den förväntar sig ren HTML men får även script och det är ajjabajja :)


Gjorde en fungerande version med jQuery lite snabbt (testade bara väder+bild). Inte så vacker och kan (bör snarare ;) ) skrivas om till bättre kod som är lättare att underhålla. Men den fungerar i alla fall.

http://jsbin.com/3/upelaz3/1/

Klicka på "Edit in jsbin" uppe till höger för att se koden.

Darkmagic 2012-06-24 19:57

Testa att lägga in denna:

Väder Malmö

du ser i slutet där har jag escapat </script> taggen så HTML inte ska tolka den som ett avslut av det andra script elementet.

Linuus 2012-06-24 20:09

Citat:

Ursprungligen postat av Darkmagic (Inlägg 20443280)
Testa att lägga in denna:

<div id='c_adf7d3ec1031d188dc6867336771dcbd' class='alto'><h2 style='color: #000000; margin: 0 0 3px; padding: 2px; font: bold 13px/1.2 Verdana; text-align: center;'>Väder Malmö</h2></div><script type='text/javascript' src='http://www.klart.se/widget/widget_loader/adf7d3ec1031d188dc6867336771dcbd'>\<\/script\>

du ser i slutet där har jag escapat </script> taggen så HTML inte ska tolka den som ett avslut av det andra script elementet.

http://jsfiddle.net/vwyX4/

Fungerar inte.

Björn 2012-06-24 20:27

Känns som du försöker lösa något mkt enkelt, med massa krångliga metoder...

1. Uppdatera de element du vill ändra dynamiskt med ajax & innerhtml, med tex jquery.
2. Lägg javascriptens funktioner på huvudsidan onload, och anropen i det dynamiskt laddade innehållet.

problem solved...?

Mr.Notepad 2012-06-24 21:42

Jag tackar alla igen för hjälpen och kommer att testa under veckan.
Tusen tack!

Conny Westh 2012-06-25 00:15

När jag kör ASP.NET (C#) så använder jag UpdatePanel och det ser ut så här i kod:


Koden ska vara placerad i en form...

Kod:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SeqNo.aspx.cs" Inherits="IISClient._SeqNo" %>

<%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="asp" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


<head></head>
<body>
    <form id="form1" runat="server">

<asp:ToolkitScriptManager ID="ScriptManager1" runat="server">
</asp:ToolkitScriptManager>

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
                <asp:GridView ID="GridView1" runat="server" AllowSorting="True"
                        AutoGenerateColumns="False" CellPadding="4" DataSourceID="odsSeqNoList"
                        EmptyDataText="No Data detected!" ForeColor="#333333" GridLines="None">
                   
                        <Columns>
                                <asp:BoundField DataField="SeqNo" HeaderText="SeqNo" >
                                            <HeaderStyle HorizontalAlign="Left" />
                                </asp:BoundField>
                        </Columns>
                </asp:GridView>

                <asp:Timer ID="Timer1" runat="server" Interval="5000" ontick="Timer1_Tick">
                </asp:Timer>
        </ContentTemplate>
</asp:UpdatePanel>
</form>
</body>
</html>

Det är smart att koppla "BoundField" till en ObjectDataSource så kan man skapa ett objekt som matar konstruktionen med data hur man vill. Funkar klockrent att bygag en preliminär testklass "TestData" som man senare kan koppla in med livedata mot en databas, webservice gör JSON- eller REST-protokollen (eller SOAP om man föredrar det).

Jag körde uppdatering över ett lokalt WIFI-nät mot webbläsaren i iPhone respektive en Android (Sony Ericsson Xperia MiniPro) md 1500 rader i gridden och uppdatering varje 0,1 sekund och det funkade superfint i flera timmar som jag testade.

Conny Westh 2012-06-25 00:32

(Som vanligt slog timeout till igen, så jag får väl posta igen)

När jag kör ASP.NET (C#) så använder jag UpdatePanel och det ser ut så här i kod:


Koden ska vara placerad i en form...

Kod:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SeqNo.aspx.cs" Inherits="IISClient._SeqNo" %>

<%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="asp" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


<head></head>
<body>
    <form id="form1" runat="server">

<asp:ToolkitScriptManager ID="ScriptManager1" runat="server">
</asp:ToolkitScriptManager>

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
                          <asp:ObjectDataSource ID="odsSeqNo" runat="server" SelectMethod="GetSeqNo"
                            TypeName="IISClient.odsSeqNoList"></asp:ObjectDataSource>

                <asp:GridView ID="GridView1" runat="server" AllowSorting="True"
                        AutoGenerateColumns="False" CellPadding="4" DataSourceID="odsSeqNo"
                        EmptyDataText="No Data detected!" ForeColor="#333333" GridLines="None">
                   
                        <Columns>
                                <asp:BoundField DataField="SeqNo" HeaderText="SeqNo" >
                                            <HeaderStyle HorizontalAlign="Left" />
                                </asp:BoundField>
                        </Columns>
                </asp:GridView>

                <asp:Timer ID="Timer1" runat="server" Interval="5000" ontick="Timer1_Tick">
                </asp:Timer>
        </ContentTemplate>
</asp:UpdatePanel>
</form>
</body>
</html>

Det är smart att koppla "BoundField" till en ObjectDataSource så kan man skapa ett objekt som matar konstruktionen med data hur man vill. Funkar klockrent att bygag en preliminär testklass "TestData" som man senare kan koppla in med livedata mot en databas, webservice gör JSON- eller REST-protokollen (eller SOAP om man föredrar det).

Jag körde uppdatering över ett lokalt WIFI-nät mot webbläsaren i iPhone respektive en Android (Sony Ericsson Xperia MiniPro) md 1500 rader i gridden och uppdatering varje 0,1 sekund och det funkade superfint i flera timmar som jag testade.


Alla tider är GMT +2. Klockan är nu 06:40.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson