Durchsuche Foren

(Erweiterte Suche)

Foren-Statistiken
» Mitglieder: 43.471
» Neuestes Mitglied: heyhey83
» Foren-Themen: 517
» Foren-Beiträge: 2.113

Komplettstatistiken

Benutzer Online
Momentan sind 118 Benutzer online
» 0 Mitglieder
» 115 Gäste
Bing, Facebook, Google

Aktive Themen
Alert Fenster
Forum: Javascript
Letzter Beitrag: Sempervivum
Vor 3 Stunden
» Antworten: 2
» Ansichten: 11
How does Tadalista affect...
Forum: Php
Letzter Beitrag: azaviona
Gestern, 09:36
» Antworten: 0
» Ansichten: 13
https://blog.indiagpt.com...
Forum: Javascript
Letzter Beitrag: indiagpt
Gestern, 08:18
» Antworten: 0
» Ansichten: 19
Unlocking the Mystery: Ne...
Forum: Datenbanken
Letzter Beitrag: richardrussel
02.05.2024, 10:20
» Antworten: 0
» Ansichten: 21
Best career counsellor in...
Forum: CoffeeScript
Letzter Beitrag: Captain12
02.05.2024, 08:13
» Antworten: 0
» Ansichten: 32
Thesis Writing Service
Forum: CoffeeScript
Letzter Beitrag: Captain12
02.05.2024, 08:10
» Antworten: 0
» Ansichten: 26
CSS Animationen verbinden
Forum: Css
Letzter Beitrag: ajmanproperties1
01.05.2024, 21:21
» Antworten: 9
» Ansichten: 708
Explore the Enchanting Be...
Forum: Javascript
Letzter Beitrag: manalitourpackage
01.05.2024, 14:20
» Antworten: 0
» Ansichten: 26
Addons blockiert
Forum: Hilfe bei Add-ons programmieren
Letzter Beitrag: jenniferbeals
01.05.2024, 00:28
» Antworten: 3
» Ansichten: 1.020
Handle Your Academic Burd...
Forum: Javascript
Letzter Beitrag: shane56
30.04.2024, 12:27
» Antworten: 0
» Ansichten: 46

  Popup öffnet sich nicht wenn der Button einen Link enthält
Geschrieben von: Ghost42 - 31.10.2023, 11:50 - Forum: Javascript - Keine Antworten

Hallo zusammen

Ich bin der Ghost42 und habe leider nur begrenzt Ahnung von Java Script. Allerdings muss ich ein Projekt abschliessen und habe soweit alles hinbekommen. Ausser etwas das vorher funktioniert hat und nun eben nicht mehr.

Deshalb benötige ich Hilfe.

Mein Code sieht wie folgt aus:


<script>

        $(function () {
            var sym = '?';
            var userAgent = navigator.userAgent || navigator.vendor || window.opera;

            if (/windows phone/i.test(userAgent)) {
                var sym = '?';
            }

            if (/android/i.test(userAgent)) {
                var sym = '?';
            }

            if (/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream) {
                var sym = '&';
            }

           
            var smscodes = [[100, 'GB', 'CH/LI', 30, 20, '100GB', 'Text', '&nbsp;'],
            [3000, 'Minuten', 'CH/LI', 30, 10, 'EUA3000', 'Text', 'Text2'],
            [1, 'GB', 'EU/Zone3', 365, 10, 'EU1GB', 'Text', '&nbsp;'],
            [5, 'GB', 'EU/Zone3', 365, 30, 'EU5GB', 'Text', '&nbsp;'],
            [100, 'Minuten', 'EU/Zone3', 365, 10, 'EU100', 'Text', 'Text2'],
            [100, 'MB', 'Zone4', 365, 10, 'W100MB', 'Text', '&nbsp;'], &nbsp;'],
            [1, 'GB', 'Zone4', 365, 40, 'W1GB', 'Text', '&nbsp;'],
            [100, 'Minuten', 'Zone4', 365, 20, 'W100MB', 'Text', 'Text2'],
            ];
            //Container Element abrufen
            var options = "";


            // Schleife zur Generierung der HTML-Elemente
            for (let i = 0; i < smscodes.length; i++) {
                var code = smscodes[i];
                options=document.getElementsByClassName(code[5]); //100GB, EUA3000, EU1GB ..
                // HTML-Struktur und Inhalt erstellen
                var sidecol = '<div class="col-xxl-2 col-xl-2 col-lg-2 col-md-2 col-sm-0 col-xs-0"></div>';
                var center_col = '<div class="col optionbg">';
                var center_title = '<div class="row"><div class="col"><h3 style="font-size: 1.2rem;">' + code[6] + '</h3></div></div>';
                var center_subtxt = '<div class="row"><div class="col">' + code[7] + '<br><span style="font-size:12px;">Gültigkeitsdauer ab Kauf: ' + code[3] + ' Tage</span></div></div>';
                var center_btn = '<div class="row"><div class="col"><a title="Titel: ' + code[5] + '" href="sms:12345' + sym + 'body=' + code[5] + '" class="btn btn-primary popupbtn" style="width:100%; padding-top: 5px;"' + i + '">Aktivieren um ' + code[4] + '.- </a></div></div>';
                var center_col_end = '</div><div class="col-xxl-2 col-xl-2 col-lg-2 col-md-2 col-sm-0 col-xs-0" ></div>';
                var dataToDisplay = sidecol + center_col + center_title + center_subtxt + center_btn + center_col_end + sidecol;




                // Ein neues div-Element erstellen
                var optionhtml = document.createElement('div');

                // Klasse je nach code[2] setzen
                switch (code[2]) {
                    case 'CH/LI':
                        optionhtml.setAttribute("class", "col-row onehidden");
                        break;
                    case 'EU/Zone3':
                        optionhtml.setAttribute("class", "col-row twohidden");
                        break;
                    case 'Zone4':
                        optionhtml.setAttribute("class", "col-row threehidden");
                        break;
                    default:
                        optionhtml.setAttribute("class", "col-row");
                }

                // HTML in das neue Element einfügen
                optionhtml.innerHTML = dataToDisplay;

                // Das Element dem Container hinzufügen
                for (let j = 0; j < options.length; j++) {
                    options[j].appendChild(optionhtml);
                }
            }

        });
    </script>


 Dann den Code für das öffnen des Popups:
<script>
       
        document.addEventListener('DOMContentLoaded', function () {
            // Alle Buttons mit der Klasse 'popupbtn' abfragen
            const popupBtns = document.querySelectorAll('.popupbtn');
            const popupContainer = document.querySelector('.popup-container');
            const closeBtn = document.querySelector('.closebtn');

            // Schleife durch alle Buttons, um den Klick-Event hinzuzufügen
            popupBtns.forEach(function (btn) {
                btn.addEventListener('click', function () {
                    popupContainer.style.display = 'block';
                });
            });

            closeBtn.addEventListener('click', function () {
                popupContainer.style.display = 'none';
            });
        });
       
    </script>

Und dann der code mit den Inhalten von oben:

<div class="container-fluid">

                <div class="row"></div>
               
                <div class="EUA3000"></div>
                <div class="100GB"></div>
                <div class="EU100"></div>
                <div class="EU1GB"></div>
                <div class="EU5GB"></div>
                <div class="W100"></div>
                <div class="W100MB"></div>
                <div class="W1GB"></div>
</div>

Wenn ich dem Button die verlinkung entferne, funktioniert das popup fast. Zumindest fährt er nach ganz oben mit der Ansicht. Was er normalerweise beim öffnen eines solchen Popups auch getan hat. Aber wie bewerkstellige ich es, dass die verlinkung bleibt?

Danke schon mal vorab für die Hilfe
LG Ghost42

Drucke diesen Beitrag

  DISTINCT
Geschrieben von: black79 - 26.10.2023, 17:55 - Forum: Datenbanken - Keine Antworten

hallo,

 - im bild unten sehen wir vier datensätze -> 1,2,3,4
 - die ersten drei datensätze -> 1,2,3 sind zeitlich sehr nahe beieinander und die kennung ist auch gleich
 - jetzt möchte ich gerne alle datensätze, die die gleiche kennung haben und zeitlich fast doppelt ankommen (differenz 30sec.) ausbleden

   in diesen fall würden dann datensatz 1,3,4 übrig bleiben
 
   wie mache ich das mit sql -> sqlbefehl
   mariadb



Angehängte Dateien Thumbnail(s)
   
Drucke diesen Beitrag

  Fehlermeldung
Geschrieben von: MDMA - 26.10.2023, 04:16 - Forum: Javascript - Antworten (1)

Mein Code: https://codepen.io/Dennis-scotton/pen/qBgdwmv

Moin Leute,

ich habe leider ein kleines Problem und hoffe, dass Sie mir helfen können. Kurz gesagt, ich möchte ein Formular für Fragen erstellen, bei dem die Fragen am Ende ausgewertet werden. Das Problem besteht darin, dass ich sicherstellen möchte, dass für alle Fragen mindestens eine der drei Antwortmöglichkeiten ausgewählt wurde, andernfalls sollte eine Fehlermeldung angezeigt werden, die den Benutzer darauf hinweist, dass nicht alle Felder ausgefüllt sind.

Ich hoffe, jemand kann mir dabei behilflich sein, da ich bisher noch keine Lösung gefunden habe. Vielen Dank im Voraus und einen schönen Tag noch.

Drucke diesen Beitrag

  Tooltip Problem
Geschrieben von: sanuj - 21.10.2023, 12:13 - Forum: Javascript - Antworten (2)

Hallo zusammen
Ich würde gern wissen, ob es für folgendes Problem eine Lösung gibt:
Es geht um einen Link auf einer Website, der auf eine Unterseite mit Fotos verweist. Beim Überfahren (nicht Klicken) des Links mit dem Cursor soll eine Art Tooltip mit einem der Fotos der Unterseite erscheinen. So weit, so einfach. Jetzt zum Problem: Für alle Touchscreens soll dieser Tooltip unterbunden werden, also nicht erscheinen.
Mit HTML und CSS bin ich halbwegs vertraut, mit Javascript nicht. Falls es also eine Lösung gibt, wäre ich dankbar für Hinweise auf Fundorte für ein vorgefertigtes Script für diesen Fall.
Mit freundlichen Grüssen

Drucke diesen Beitrag

  Gotify "const axios" unable to verify the first certificate
Geschrieben von: benjamin0101 - 15.10.2023, 10:12 - Forum: Javascript - Keine Antworten

Hallo,
ich habe den Selv Hostet Gotify benachrichtigungs Server der läuft erfolgreich auf HTTPS.

Vorher hatte ich Gotify als HTTP am laufen und folgenden Code im Java Script dass hatte auch funktioniert.

Code:
const axios = require("axios");
const url = "http://192.168.178.xxx/message?token=ATvOgRNF8QqwGVN";
const bodyFormData = {
  title: "Hello from Javascript",
  message: "Test Push Service from Node.js",
  priority: 5,
};
axios({
  method: "post",
  headers: {
    "Content-Type": "application/json",
  },
  url: url,
  data: bodyFormData,
})
  .then((response) => console.log(response.data))
  .catch((err) => console.log(err.response ? error.response.data : err));
```
Seit der Umstellung auf HTTPS habe ich den Code so angepasst: (nur HTTP zu HTTPS geändert)
```
const axios = require("axios");
const url = "https://192.168.178.xxx/message?token=ATvOgRNF8QqwGVN";
const bodyFormData = {
  title: "Hello from Javascript",
  message: "Test Push Service from Node.js",
  priority: 5,
};
axios({
  method: "post",
  headers: {
    "Content-Type": "application/json",
  },
  url: url,
  data: bodyFormData,
})
  .then((response) => console.log(response.data))
  .catch((err) => console.log(err.response ? error.response.data : err));


Seit der Umstellung auf HTTPS habe ich den Code so angepasst: (nur HTTP zu HTTPS geändert)

Code:
const axios = require("axios");
const url = "https://192.168.178.xxx/message?token=ATvOgRNF8QqwGVN";
const bodyFormData = {
  title: "Hello from Javascript",
  message: "Test Push Service from Node.js",
  priority: 5,
};
axios({
  method: "post",
  headers: {
    "Content-Type": "application/json",
  },
  url: url,
  data: bodyFormData,
})
  .then((response) => console.log(response.data))
  .catch((err) => console.log(err.response ? error.response.data : err));

Seitdem bekomme ich folgende fehlermeldung.
Ich habe zwar schon im Internet geschaut aber ich bin bischer leider erfolglos.

Code:
{'message':'unable to verify the first certificate','name':'Error','stack':'Error: unable to verify the first certificate\n at Function.AxiosError.from (/opt/iobroker/node_modules/iobroker.javascript/node_modules/axios/dist/node/axios.cjs:837:14)\n at RedirectableRequest.handleRequestError (/opt/iobroker/node_modules/iobroker.javascript/node_modules/axios/dist/node/axios.cjs:3016:25)\n at RedirectableRequest.emit (node:events:514:28)\n at ClientRequest.eventHandlers.<computed> (/opt/iobroker/node_modules/follow-redirects/index.js:14:24)\n at ClientRequest.emit (node:events:514:28)\n at TLSSocket.socketErrorListener (node:_http_client:501:9)\n at TLSSocket.emit (node:events:514:28)\n at emitErrorNT (node:internal/streams/destroy:151:8)\n at emitErrorCloseNT (node:internal/streams/destroy:116:3)\n at processTicksAndRejections (node:internal/process/task_queues:82:21)\n','config':{'transitional':{'silentJSONParsing':true,'forcedJSONParsing':true,'clarifyTimeoutError':false},'adapter':'http','transformRequest':[null],'transformResponse':[null],'timeout':0,'xsrfCookieName':'XSRF-TOKEN','xsrfHeaderName':'X-XSRF-TOKEN','maxContentLength':-1,'maxBodyLength':-1,'env':{},'headers':{'Accept':'application/json, text/plain, */*','Content-Type':'application/json','User-Agent':'axios/1.5.0','Content-Length':'89','Accept-Encoding':'gzip, compress, deflate, br'},'method':'post','url':'https://192.168.178.xxx/message?token=ATvOgRNF8QqwGVN','data':'{\'title\':\'Hello from Javascript\',\'message\':\'Test Push Service from Node.js\',\'priority\':5}'},'code':'UNABLE_TO_VERIFY_LEAF_SIGNATURE','status':null}

Hat einer eine idee wie ich das SSL im Code ausschalten kann oder noch besser wie ich dass mit einem Zertifikat hinbekomme also Zertifikat habe ich ja ich weiß nur nicht wie ich dass coden soll.

Drucke diesen Beitrag

  vue.js API data bleibt leer
Geschrieben von: BastiBln - 13.10.2023, 07:34 - Forum: Vue.js - Antworten (1)

Moin Kinners,

ich benötige mal einen Rat.
Ich habe eine API gebaut, das ist der Code dazu:

PHP-Code:
header('Access-Control-Allow-Origin: *');
header('Content-Type: application/json');

include 
'../DBconnect.php';

$rslt $pdo->query("SHOW TABLES");
$songs_random['data'] = array();
while (
$db_table $rslt->fetch(PDO::FETCH_NUM)) {
    $sql "SELECT id, title, textauthor, musicauthor, genre FROM `$db_table[0]` ORDER BY RAND() LIMIT 3";    
    
foreach ($pdo->query($sql) as $row) {
        $song_items = array(
            'id' => $row['id'],
            'title' => $row['title'],
            'textauthor' => $row['textauthor'],
            'musicauthor' => $row['musicauthor'],
            'genre' => $row['genre']
        );
        array_push($songs_random['data'], $song_items);
    }
}
echo 
json_encode($songs_random); 

So sieht das dann im Browser aus:

[Bild: Bildschirmfoto.png]

Und so versuche ich die Daten in vue.js darzustellen:

Code:
<template>
    <div class="container-sm text-center mt-4">
        <div class="container-sm mt-3">
            <h3>Hier eine zufällige Auswahl aus der Musik Datenbank.</h3>
        </div>
        <div class="container-sm text-justify mt-5">
            <ul>
                <li v-for="item in items" :key="item.id">{{ item.title }}</li>
            </ul>
        </div>
    </div>
</template>

<script>
export default {
    mounted(){
    window.addEventListener("load", () => this.songsRandom());
    },
    data() {
        return {
        items:[]
        }
    },
    methods: {
        async songsRandom() {
            let apiURL = 'https://gracile-software.de/projects/service-api/xxxxxxxx/xxxx/xxxxxx.php';
            try {
                let response = await this.axios.get(apiURL);
                this.items = response.data;
                console.log(response.data);
            } catch (e) {
                console.log(e);
            }
        }
    }
}
</script>


Doch leider bleibt die Liste leer. In der Console kann ich alle Daten in der richtigen Reihenfolge sehen. Der EventListener ist erstmal nur zum Testen drin, das bau ich später um.

Hat mir wer einen Tipp, wo der Fehler liegen kann? Ich sehe ihn leider nicht.

Vielen Dank!

Drucke diesen Beitrag

  app.get funktioniert nicht
Geschrieben von: sfthbara - 12.10.2023, 21:13 - Forum: Node.js - Keine Antworten

Hi möchte den Inhalt einer Datenbank auf app.js laden, also ins Frontend laden. Ich kann auf den Inhalt über db.query zugreifen, dort funktionieren alle logs. Jedoch app.get verwende scheint es nicht mehr zu gehen. Alle logs dort funktionieren hinter app.get nicht mehr und das brauche ich ja zur Übertragung. Eine Idee woran es liegen könnte? Hier der Code

Code:
require("dotenv").config();

const express = require("express");
const app = express();
const port = process.env.PORT || 3000;

const { Client } = require("pg");

const db = new Client({
  connectionString: process.env.DATABASE_URL,
  ssl: { rejectUnauthorized: false }, // Nur erforderlich, wenn Sie auf Heroku hosten
});

db.connect()
  .then(() => {
    console.log("Datenbankverbindung hergestellt!");

    // Beispielabfrage, um den Inhalt der Datenbank anzuzeigen
    db.query("SELECT * FROM art_data")
      .then((result) => {
        // Die Abfrageergebnisse werden hier in result.rows gespeichert
        console.log("Datenbankinhalt:");
        console.log(result.rows);
      })
      .catch((error) => {
        console.error("Fehler beim Abrufen des Datenbankinhalts:", error);
      });
  })
  .catch((err) =>
    console.error("Fehler beim Herstellen der Datenbankverbindung:", err)
  );

// In deiner Server-Datei (z. B. server.js)
app.get("/api/getArtData", (req, res) => {
  db.query("SELECT * FROM art_data")
    .then((result) => {
      console.log(result.rows); // Protokolliere die Daten
      res.json(result.rows); // Sende die Daten an den Client

      console.log(res.json(result.rows));
    })
    .catch((error) => {
      console.error("Fehler beim Abrufen der Daten aus der Datenbank:", error);
      res.status(500).json({ error: "Fehler beim Abrufen der Daten" });
    });
});

app.get("/connection-status", (req, res) => {
  console.log("res");
  console.log(res);
  res.json({ status: "Verbindung zur Datenbank hergestellt!" });
});

// Ein einfacher API-Endpunkt
app.get("/api/hello", (req, res) => {
  res.json({ message: "Hello, World!" });
});

app.listen(port, () => {
  console.log(`Server läuft auf Port ${port}`);
});

Drucke diesen Beitrag

  ajax php insert info
Geschrieben von: black79 - 12.10.2023, 10:27 - Forum: Php - Keine Antworten

hallo, ich versuche über javascript und ajax einen datensatz anzulegen.

ohne sql-befehl läuft alles durch, und ich bekomme auch eine antwort (request status 200)

mit sql-befehl (zwei Zeilen) bekomme ich keine antwort mehr vom Server (request status 500)

hier die zwei zeilen! sql-befehl! (verbindung zum sql server steht natürlich!)

PHP-Code:
$query = ("INSERT INTO monitord_pocsag (uhrzeit,kennung,sub,text,quelle)  VALUES ( NOW(),'1234567','0','test','0'");
        $con->query($query); 

hier die function zum button:
Code:
function newDaten() {
    dataString = 'newDaten=1';
    $.ajax({
        type: 'POST',
        url: 'alarmmonitor.php',
        data: dataString,
        beforeSend: function () {
            alert('starte Request' + dataString);
        },
        // aufruf erfolgt, wenn der HTTP Request erfolgreich war (200er Status codes)
        success: function (data) {
            alert('Anfrage erfolgreich' + data);
            if (data == 1879) {
                alert('alles fein');
            } else {
                alert('unerwartete/fehlerhafte Daten :-(');
            }
        },
        // wird aufgerufen, wenn es einen Übertragungsfehler gab, also der HTTP Status code 404 oder ein 500er ist oder es Netzwerkfehler gibt usw.
        error: function () {
            alert('irgendwas geht nicht');
        },
        // wird immer aufgerufen, egal wie das Ergebnis des Requests ist.
        // kann man Nutzen um z.B. einen Ladebildschirm auszublenden
        complete: function () {
            alert('Request fertig.');
        },
    });
}


hier das php script:
PHP-Code:
<?php
 
include_once 'dbconnect.php';
 
header('Content-Type: text/html; charset=utf-8'); 
 
header('cache-control: no cache');

 

   if(isset($_POST['newDaten'])) { 
    $id1 $_POST['newDaten'];
     if ($id1 0)
      {    
       // $datum = date('Y-m-d H:i:s');
       
        $query 
= ("INSERT INTO monitord_pocsag (uhrzeit,kennung,sub,text,quelle)  VALUES ( NOW(),'1234567','0','test','0'");
        $con->query($query);

        $response1 '1879';
    
  }          
     
echo $response1;
    exit;   
   
}
 
   if(isset($_POST['tableClear'])) { 
    $id2 $_POST['tableClear'];
     if ($id2 0)
      {    
    
   $query = ("TRUNCATE TABLE monitord_pocsag");
    
   $con->query($query);
       $response2 '3711';
    
  }          
     
echo $response2;
    exit;   
   
}
?>

Drucke diesen Beitrag

  Vue.js Strukturen und Konventionen?
Geschrieben von: BastiBln - 07.10.2023, 18:09 - Forum: Vue.js - Antworten (1)

Moin Kinners,

ich mach grade die ersten Gehversuche mit vue.js. Ich möchte gerne zwei php-Plattformen wo ich gebaut habe, in vue.js nochmal bauen. Habe mir zwei Online-Kurse im CoderCampus angesehen und schon die erste Struktur gebaut. Header, Menu und Footer sind gebaut und eingebunden. Auch mit dem interaktiven Content via router komme ich klar.

Dennoch habe ich ein paar Fragen, wo ich im Netz nichts hilfreiches gefunden habe:

1. Ich muss recht viel Content aus Datenbanken laden, der ebenfalls interaktiv ist. Ist es besser dafür APIs zu bauen um an die Daten zu kommen, oder genügt es die php Funktionen direkt via axios anzusprechen?
Beide Plattformen sollen PWAs werden. Hätten APIs hier Vorteile?

2. Innerhalb des interaktiven Contents gibt es verschiedene Funktionen, die z.Bsp. auf anderen Content verweisen. Steuert man das auch über vue-router oder gibt es noch andere Möglichkeiten?

3. Können Daten/Statuswerte innerhalb der Plattform Struktur(nicht zur DB) auch via POST übermittelt werden, oder nur mit GET? Ich bin kein großer Fan der Datenübergabe via URL.

Vielen Dank Euch!

Drucke diesen Beitrag

  wiederholtes ctx.drawImage belastet browser
Geschrieben von: jumbo125 - 03.10.2023, 08:31 - Forum: Javascript - Keine Antworten

Hallo zusammen
Ich nutzte go2rtc um meine Webcams für den Browser zugänglich zu machen. Dies funktioniert auch sehr gut.

Die Darstellung erfolgt auf meinem Tablet mit 8GB Ram.
Leider bleibt das Video hier öfters hängen, aber ohne irgendeine Fehlermeldung.
Nach langem suchen glaube ich, das es am Android tablet und der Webview liegt, welche die Browser Daten rendert.

Als lösung habe ich ein Script programmiert, welches folgendermaßen funktioniert:
1. es erstellt ein Bild vom Camera-Bild welches NUR die Uhrzeit darstellt. (Das Bild ist nur 40px x 80 px) groß. Es wird in ein js canvas-element gespeichert
2. Danach wird ein neues Bild erstellt. wieder nur von der Uhrzeit, aber 2sekunden später. Es wird wieder in ein js canvas-element erstellt
3. Danach werden die zwei Canvas mit pixelmatch verglichen
4. falls es sich um das gleiche bild handelt, ist es leider steckengebleiben und das video wird einfach neu geladen(die seite wird einfach neugeladen)

code teile:

Javascript:

Code:
var ctx = canvas1.getContext('2d');
            ctx.drawImage( video, start_x, start_y, canvas1.width, canvas1.height, 0, 0 , canvas1.width, canvas1.height );


Javascript:
Code:
var ctx = canvas2.getContext('2d');
            ctx.drawImage( video, start_x, start_y, canvas2.width, canvas2.height, 0, 0 , canvas2.width, canvas2.height );


Javascript:
Code:
var same_pic = pixelmatch(canvas1_img_data.data, canvas2_img_data.data, diff_data.data, crop_img_width, crop_img_height, {threshold: 0.1});
            //create image with differenze for debugging
            diffContext.putImageData(diff_data, 0, 0);


Das funktioniert auch super.
Immer wieder wenn ich auf das Tablet schaue, läuft das Video flüssig.

Das Problem:
Das Tablet zeigt nach einiger Zeit "Die App reagiert nicht mehr."
Nebenbei muss ich erwähnen, dass der Browser voll reagiert. Nun habe ich in einem Android Forum das Problem geschildert, mit der Info, dass der Browser voll funktionsfähig trotz fehlermeldung ist. Daher liegt der Fehler an der Webview

FAZIT:
Durch das wiederholte erstellen und vergleichen dürfte die Webview, welche das Material rendert nicht klar kommen.

Meine Frage:
ist dies wirklich sehr brwoser belastend? wie kann ich es optimieren?
macht es sinn, diecanvas immer wieder zu löschen? oder ist das unnötig, da sie immer wieder neu befüllt werden?

Drucke diesen Beitrag