doom-software.com

Evaluation du site doom-software.com

Facturacion Web

 Généré le 06 Avril 2026 08:36

Vieilles statistiques? UPDATE !

Le score est de 28/100

Optimisation du contenu

Titre

Facturacion Web

Longueur : 15

Parfait, votre titre contient entre 10 et 70 caractères.

Description

Longueur : 0

Très mauvais. Nous n'avons pas trouvé de balise META description sur votre page. Utilisez ce générateur gratuit de balises META en ligne pour créer une description.

Mots-clefs

Très mauvais. Nous n'avons pas trouvé de balise META keywords sur votre page. Utilisez ce générateur gratuit de balises META en ligne pour créer des mots-clés.

Propriétés Open Graph

Cette page ne profite pas des balises META Open Graph. Cette balise permet de représenter de manière riche n'importe quelle page dans le graph social (environnement social). Utilisez ce générateur gratuit de balises META Open Graph pour les créer.

Niveaux de titre

H1 H2 H3 H4 H5 H6
0 10 28 48 6 0
  • [H2] Ooops. !!!! Algo fué mal.
  • [H2] Ooops. !!!! Algo tardo demasiado
  • [H2] Ooops. !!!! Algo fué mal.
  • [H2] Ooops. !!!! Algo fué mal.
  • [H2] Fields
  • [H2] Fields
  • [H2] Fields
  • [H2] Ooops. !!!! Algo tardo demasiado
  • [H2] Ooops. !!!! Algo fué mal.
  • [H2] Ooops. !!!! Algo fué mal.
  • [H3] ' + settings.title + '
  • [H3] Files in folder ( " + data.foldername + " )
  • [H3] '+ ' Files
  • [H3] " + vTitol + "
  • [H3] No Preview avialable
  • [H3] Un error no controlado ha ocurrido.
  • [H3] ${self.options.title}
  • [H3] Un error no controlado ha ocurrido.
  • [H3] Un error no controlado ha ocurrido.
  • [H3] ' + element.value + '
  • [H3] ' + element.value + '
  • [H3] ' + vElement.title + '
  • [H3]
  • [H3] " + data.General.title + "
  • [H3] " + vTitol + "
  • [H3] ' + element.value + '
  • [H3] " + data.General.title + "
  • [H3] " + vTitol + "
  • [H3] " + vTitol + "
  • [H3] ' + settings.print.title + '
  • [H3] ' + settings.print.title + '
  • [H3] ",{class:"box-title",text:op.GroupTitle})) var hBoxTools = $("",{class:"box-tools"}).appendTo(hDivTitle); var hMin = $("",{class:"btn btn-box-tool","data-widget":"collapse"}).appendTo(hBoxTools).append("") .click(function(){ self.DivList.toggle(500); }); var hdivMenus = $("",{style:"display:block",class:"box-body no-padding"}).appendTo(self.DivList); self.DivList = hdivMenus; }// GROUP title // MAIN BUTTON if (self.options.elements.button){ self.MainButton = $.appendE(self.options.elements.button).appendTo(hDiv); }else{ self.MainButton = $("",{class:self.options.ButtonClass,"data-toggle":"dropdown","type":"button","aria-expanded":true}).appendTo(hDiv); } if (self.options.ButtonStyle) {self.MainButton.attr("style",self.options.ButtonStyle)} var BtnTitle = null; if (self.options.title) {BtnTitle = self.options.title + ' '} var hUL = $("",{class:self.options.UlClass}); self.UL = hUL; if (self.options.ulstyle) { hUL.attr("style",self.options.ulstyle) } $.each(this.recordset,function(i,obj){ // console.log(obj) if (obj.icon == "nav-divider"){ // hUL.appendE({tagName:"",class:obj.icon}) var hLi = $.appendE({tagName:"",class:obj.icon}).appendTo(hUL).append(""); }else{ var hLi = $('',{class:self.options.LiClass,role:"presentation",style:self.options.LiStyle}).appendTo(hUL); if (obj.rowData) {hLi.attr("rowData", obj.rowData)}; if (obj.addLIclass) { hLi.attr("class" , hLi.attr("class") + ' ' + obj.addLIclass ) } obj.LI = hLi; var hA = $("",{text: ' ' + obj.title, role:"menuitem"}).appendTo(hLi); if (obj.titlestyle) {hA.attr("style", obj.titlestyle)} if (obj.icon){ var iAttributes = {class:obj.icon}; if (obj.iconstyle) {iAttributes.style = obj.iconstyle} hA.prepend($("",iAttributes)); } // icon if (obj.badge) { if (!obj.badgestyle) {obj.badgestyle = ""} $("",{class:'badge',text:obj.badge,style:"float:right;" + obj.badgestyle}).appendTo(hA) }// badge hLi.click({item:hLi.index(),obj:obj},function(e){ var obj = e.data.obj; var DataSend = self.recordset[e.data.item]; if (self.options.DataAdd) {DataSend.DataAdd =self.options.DataAdd } if (obj.onclick) { if (self.options.ClickContext){ obj.onclick.call(self.options.ClickContext,DataSend) }else{ obj.onclick(DataSend) } } if (self.options.onclick){ if (self.options.ClickContext){ self.options.onclick.call(self.options.ClickContext,DataSend) }else{ self.options.onclick(DataSend) } } if (self.options.selected){ self.DivList.find("li.active").removeClass("active"); $(this).addClass("active"); } if (self.options.showCheck) { var hli = self.UL.find("li.check"); hli.removeClass("check"); hli.find("a").find("i.fa-check").remove(); $(this).find("a").prepend(''); $(this).addClass("check"); } // Change the default. if (self.options.default){ self.MainButton.html(obj.title + ' ') if (self.options.icon) { self.MainButton.prepend(" ")} self.MainButton.append('') }// default }) // DEFAULT if ( (self.options.default) && (self.options.default== obj.id) ) { if (self.options.showCheck) { hLi.addClass("check"); hA.prepend(''); } if (self.options.selected){ hLi.addClass("active"); } BtnTitle = obj.title + ' '; }; // default }// No divider }) // each // BUTTON TITLE if (BtnTitle) {self.MainButton.html(BtnTitle)} if (self.options.icon) { self.MainButton.prepend(" ")} self.MainButton.append('') self.DivList.append(hUL); }, // end ShowElements } // --------------------------------------------------------- // DECLARED JQUERY FUNCTIONS // ------------------------------------------------------------ $.fn.jMenu = function(options){ // RETURN FOR EACH ELEMENT CHAINING MANTEINING return this.each(function(){ // this is now jquery object this.html(''); var my = Object.create(jMenu); my.init(options, this); // INSTANCIATE MYCOMPONENT // access to my component from outside like $('#mydiv').data('mycomponent') if (options.idName){ $.data(this,options.idName,my) }else{ $.data(this,'jMenu',my) } }); // end return FOR EACH ELEMENT CHAINING MANTEINING } // --------------------------------------------------------- // OPTIONS // ------------------------------------------------------------ $.fn.jMenu.Options = { TagButton: "", MainDivSytle: "", MainDivClass: "dropdown inline", ButtonClass:"btn btn-default dropdown-toggle" , UlClass:"dropdown-menu" , LiClass:"",LiStyle:"cursor:pointer" , ButtonClass:"btn btn-default dropdown-toggle", SpanClass:"label label-default pull-right", selected: false,showCheck:false, GrupTitleClass: "box-header with-border", elements:{ // button:{tagName:"",class:"btn btn-default dropdown-toggle",style:"","data-toggle":"dropdown","type":"button","aria-expanded":true}, } }; // end options // APPEND ELEMENT *appendE jQuery.fn.appendE = function(element){ return this.each(function(){ // YOUR CODE FOR EACH ELEMENT HERE // EXAMPLE : $(this).css('color',settings.color); var tagName = element.tagName; delete element.tagName; // console.log("append element:" + tagName + " - " ); console.log(element); $(this).append($(tagName,element)); }); // end return }// appendE jQuery.appendE = function(element){ var tagName = element.tagName; delete element.tagName; return $(tagName,element) } // appendE })(jQuery, window, document); // END SCOPE jMenu // jKubyData component var jKubyData = { // default values *defaults defaults : { name: 'Default Name', DBtoken:null , xmlConf:null, }, // end defaults // SERVER CONNECTION *server *options serverOptions: { // hostname : "api.kubysoft.com" , url : "/node/app", // "/app" kubyapikey: "kubyapitoken00014xs", appServer: "KubyData.Api" // change app server for your app server. }, // CALL SERVER *server *call CallServer: function(Myparams, fnNext){ // console.log("fn CallServer") var self = this; // INI VARS. var settings = {CallType:"GET",timeout:9000}; if (!fnNext) {fnNext = function(){}} if (!Myparams) { Myparams = {}} // PREPARE CALL Myparams.DBToken = self.options.DBtoken; var hostName = window.location.hostname; if ( this.serverOptions.hostname ) { hostName = this.serverOptions.hostname } var Protocol = window.location.protocol; if (!Protocol){Protocol = "http:"} var url= Protocol + '//'+ hostName + self.serverOptions.url + '/?app=' + self.serverOptions.appServer; console.log("KUDABY CALL SERVER: " + url);console.log("Settings:") ; console.dir(settings); console.log("Myparams:"); console.dir(Myparams); // NodeAjaxTime = new Date().getTime(); var MydataReturn = null; $.ajax({ // headers: {'kubyapikey': self.serverOptions.kubyapikey}, type: settings.CallType, url: url, contentType: 'application/json', timeout: settings.timeout, data: Myparams , success: function(data) { if (fnNext) { if (data.error){ self.showError(data.error, data.errorDescription) }else{ fnNext.call(self,data); } }// success. }, // success error: function(jqXHR, textStatus, errorThrown) { self.showError("Error Call server", errorThrown) } // error })// end ajax. },// end call server, // SERVER CALL ServerCallExample: function(){ var self = this; // call server var MyParams = {option:"exceltime",value:42854}; self.CallServer(MyParams, fnResponse); function fnResponse(data){ var self = this; console.log("After server"); console.dir(self);console.log(data); } }, // ServerCallExample // *CREATE A INSTANCE *new *instance create: function(options){ var instance = Object.create(this); Object.keys(options).forEach(function(key){ instance[key] = options[key]; }) return instance; }, // end create // INIT *init componentn init: function(options, elem){ // INI OBJECTS var self = this; // reference to mycomponent . self.MainDiv = $(elem); // jquery version of actual element // INI OPTIONS self.options = $.extend({}, self.defaults, options); // KUDABY INI if (!self.options.DBtoken) {self.options.DBtoken = KubyData.DBtoken} self.kubyDB = new KuDaBy({DB:self.options.DBtoken,xmlConf:self.options.xmlConf}); // UPDATE SCHEMA var jForms = jKudabyForms.create({}) jForms.SchemaUpdate({xml:"KubyData.Schema"},function(){ }); // INI VARS. self.Data = {} self.Data.user = KubyData.usuario; self.Data.operacionList = [{value:'1',title:'Igual =',db:'='},{value:'2',title:'Diferente ',db:''}, {value:'3',title:'Contiene (like)',db:'like'}, {value:'4',title:'Empiez por',db:'like'},{value:'5',title:'Mayor que >',db:'>'}, {value:'6',title:'Menor que
  • [H3] Añadir nuevo criterio
  • [H3] Añadir nuevo campo
  • [H3] '+ ' Files
  • [H3] Un error no controlado ha ocurrido.
  • [H3] Un error no controlado ha ocurrido.
  • [H3] " + vTitulo + "
  • [H4] ' + settings.title + '
  • [H4] Alert!
  • [H4] '); hMain.append(hText ); if (settings.type =='danger') { hText.append(''); }else if (settings.type =='warning') { hText.append(''); }else if (settings.type =='info') { hText.append(''); }else if (settings.type =='success') { hText.append(''); }; // end icon hText.append(' '+ settings.title +''); // DESCRIPCIOT hMain.append(''); hMain.append('' + settings.description + '
  • [H4] Warning!
  • [H4] Do you wanna delete the file ?
  • [H4] ' + Err + '
  • [H4] Nueva Carpeta
  • [H4] Puede volver a cargar la aplicación. Si el problema persiste envie un ticket para que revisemos el problema.
  • [H4] ' + Err + '
  • [H4] Editar Html
  • [H4] Puede que hayas perdido intermitentemente la conexión, prueba de volver a intentarlo.
  • [H4] Puedes volver a cargar la aplicación.
  • [H4] Se ha generado automáticamente el ticket num ${numTicket} y en seguida revisaremos el problema para que puedas seguir trabajando.
  • [H4] Puedes volver a cargar la aplicación y probar la actuación de nuevo, si el problema persiste abre un ticket indicando en qué actuación te aparece este error.
  • [H4] IMPORTING ERRORS
  • [H4] IMPORTING ERRORS
  • [H4] ' + data.ErrorImport + '
  • [H4] IMPORTING DATA
  • [H4] IMPORTING DATA
  • [H4] IMPORTING ERRORS
  • [H4] ' + Err + '
  • [H4] Warning!
  • [H4] Are you sure to delete this record ?
  • [H4] Warning!
  • [H4] Deleting in " + CountDownDelete + "
  • [H4] ' + Err + '
  • [H4] Añadir nuevo cliente
  • [H4] Añadir nuevo cliente
  • [H4] ' + Err + '
  • [H4] {{title}}
  • [H4] ' + Err + '
  • [H4] ' + Err + '
  • [H4] Warning!
  • [H4] Do you wanna delete the file ?
  • [H4] Puede que hayas perdido intermitentemente la conexión, prueba de volver a intentarlo.
  • [H4] Puedes volver a cargar la aplicación.
  • [H4] Se ha generado automáticamente el ticket num ${numTicket} y en seguida revisaremos el problema para que puedas seguir trabajando.
  • [H4] Puedes volver a cargar la aplicación y probar la actuación de nuevo, si el problema persiste abre un ticket indicando en qué actuación te aparece este error.
  • [H4] ' + Err + '
  • [H4] Atención!
  • [H4] Esta seguro que quiere borrar este registro ?
  • [H4] Alerta!
  • [H4] Borrado en " + self.CountDownDelete + "
  • [H4] Atención!
  • [H4] Esta seguro que quiere borrar este registro ?
  • [H4] Warning!
  • [H4] Deleting in " + self.CountDownDelete + "
  • [H4] ' + Err + '
  • [H5] TOTAL
  • [H5] TOTAL
  • [H5] TOTAL
  • [H5] No data
  • [H5] "+ '' + Title + "
  • [H5] ",{class:"description-text",text:"TOTAL"})) .append($("",{class:"description-header",text:total.toFixed(vdecimals)})) if (self.options.showTotal == "Left" ){ FootLeft.append(hDivTotals) }else if (self.options.showTotal = "Right"){ FootRight.append(hDivTotals) } } } // divider footer. }, // HtmlIni // DATA PREPARE *DATA *PREPARE DataPrepare: function(){ var self = this, op = self.options; self.DataFields(); console.log("fn DataPrepare"); console.log(op); // INI DATA // self.Data.Recordset = self.options.recordset; // INI VARS var swPrepareData = true; // CAMBIAR CAMP DATA PER DATE if ( (op.FieldGrup.toLowerCase() == 'fecha') || (op.FieldGrup.toLowerCase() == 'data') || (op.FieldGrup.toLowerCase() == 'date') ) { op.SwFecha = true ; op.FieldGrupOriginal = op.FieldGrup; // GET PART OF DAYS var con, mindate=null,maxdate=null, row; if (self.Data.Recordset.length > 0){ for (i = 0; i < self.Data.Recordset.length; i++){ row = self.Data.Recordset[i]; var dateAact = row[op.FieldGrup]; var dateArr = dateAact.split('/'); var year = parseInt(dateArr[2]); var month = parseInt(dateArr[1]); var monthstr= month; if (month < 10){monthstr='0'+month}else{ } var day = parseInt(dateArr[0]); if (day < 10){var daystr='0' + day} var strDate = month + "/" + day + "/"+ year; var CurrDate = new Date(strDate); // month if (month < 10){var mes='0'+month+'/'+year;} else{var mes=month+'/'+year;}; row.Month = mes; row.MonthNum= month; // day var DoY = getDOY(CurrDate); row.Day = DoY row.DayM = daystr + '/' + monthstr; row.DayY = daystr + '/' + monthstr + '/' + year; // week var week = getWeekNumber(CurrDate); row.Week = week; // year row.Year = year; row[op.FieldGrup] = CurrDate; //row.push(DoY);row.push(week); row.push(month); row.push(mes); row.push(year);row.pusch // MIN MAX DATE if ( (mindate== null ) || ( CurrDate < mindate) ) { mindate = CurrDate } if ( (maxdate== null ) || ( CurrDate > maxdate) ) { maxdate = CurrDate } }; // Difference var timeDiff = Math.abs(mindate.getTime() - maxdate.getTime()); var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24)); op.DaysDiff = diffDays; // console.log("After prepare data "); console.dir(self.Data.Recordset); self.Data.DataArray = self.record2Array(self.Data.Recordset); self.Data.keys = self.Data.DataArray[0]; } }else{ op.SwFecha = false self.Data.DataArray = self.record2Array(self.Data.Recordset); self.Data.keys = self.Data.DataArray[0]; } // if fecha // OCULTA CAMBIO DE FECHAS. if (!op.SwFecha){ self.DivTimeView.html(''); } // IF CharType IS PIECHART DELETE NEGATIVE VALUES. if (op.CharType == "PieChart"){ var colValue = self.Data.keys.indexOf(op.FieldValor) for (var i = 1; i < self.Data.DataArray.length; i++) { if (self.Data.DataArray[i][colValue] < 0 ) { self.Data.DataArray.splice(i, 1);} } }// if // PREPARE DATAGRAPH GRUP DATA /* if (false){ var DataG = google.visualization.arrayToDataTable(self.Data.DataArray); self.Data.DataGraph = google.visualization.data.group(DataG,[self.Data.keys.indexOf(op.FieldGrup)], [{'column': self.Data.keys.indexOf(op.FieldValor), 'aggregation': google.visualization.data.sum, 'type': 'number'}] ); } // prepare */ self.dataChangeView(); self.showMultiView(); },// DataPrepare //DataFields *data *fields DataFields : function(){ var self = this, op = self.options; console.log(self.Data.Recordset); console.log("Fields"); console.log(op.Fields); self.Fields = []; var savedFields = []; var fieldElement = {}; //loop the field options if (self.options.Fields.length>0){ for (var i = 0;i

Images

Nous avons trouvé 74 image(s) sur cette page Web.

72 attribut(s) alt sont vides ou manquants. Ajouter un texte alternatif permet aux moteurs de recherche de mieux comprendre le contenu de vos images.

Ratio texte/HTML

Ratio : 0%

le ratio de cette page texte/HTML est au-dessous de 15 pour cent, ce qui signifie que votre site manque de contenu textuel.

Flash

Parfait, aucun contenu FLASH n'a été détecté sur cette page.

Iframe

Dommage, vous avez des Iframes sur vos pages Web, cela signifie que son contenu ne peut pas être indexé par les moteurs de recherche.

Réécriture d'URLs

Bien. Vos liens sont optimisés!

Tiret bas dans les URLs

Nous avons détectés des soulignements dans vos URLs. Vous devriez plutôt utiliser des tirets pour optimiser votre référencement.

Liens dans la page

Nous avons trouvé un total de 8 lien(s) dont 3 lien(s) vers des fichiers

Texte d'ancre Type Juice
view » Interne Passing Juice
"+ vOneFile.name + " Interne Passing Juice
Action Interne Passing Juice
"+Myfile.descripcio+" Interne Passing Juice
"+name+" Interne Passing Juice
General Interne Passing Juice
'+obj.title+' Interne Passing Juice
Created by doom-software.com Interne Passing Juice

Mots-clefs

Nuage de mots-clefs

sessión  todos los iniciar  doom derechos software productos copyright inicio

Cohérence des mots-clefs

Mot-clef Contenu Titre Mots-clefs Description Niveaux de titre
inicio 1
productos 1
iniciar 1
sessión 1
copyright 1

Ergonomie

Url

Domaine : doom-software.com

Longueur : 17

Favicon

Génial, votre site web dispose d'un favicon.

Imprimabilité

Aucun style CSS pour optimiser l'impression n'a pu être trouvé.

Langue

Bien. Votre langue est : sp.

Dublin Core

Cette page ne profite pas des métadonnées Dublin Core.

Document

Doctype

Doctype manquant

Encodage

Parfait. Votre charset est ISO-8859-15.

Validité W3C

Erreurs : 0

Avertissements : 0

E-mail confidentialité

Attention! Au moins une adresse e-mail a été trouvée en texte clair. Utilisez une protection anti-spam gratuite pour cacher vos e-mails aux spammeurs.

HTML obsolètes

Génial! Nous n'avons pas trouvé de balises HTML obsolètes dans votre code.

Astuces vitesse

Attention! Essayez d'éviter les tableaux imbriqués au format HTML.
Mauvais, votre site web utilise des styles css inline.
Mauvais, votre site web contient trop de fichiers CSS (plus de 4).
Mauvais, votre site web contient trop de fichiers javascript (plus de 6).
Dommage, votre site n'est pas optimisé avec gzip.

Mobile

Optimisation mobile

Icône Apple
Méta tags viewport
Contenu FLASH

Optimisation

Sitemap XML

Manquant

Votre site web ne dispose pas d’une sitemap XML, ce qui peut poser problème.

La sitemap recense les URLs que les moteurs de recherche peuvent indexer, tout en proposant d’éventuelles informations supplémentaires (comme la date de dernière mise à jour, la fréquence des changements, ainsi que leur niveau d’importance). Ceci permet aux moteurs de recherche de parcourir le site de façon plus efficace.

Robots.txt

https://doom-software.com/robots.txt

Votre site dispose d’un fichier robots.txt, ce qui est optimal.

Mesures d'audience

Manquant

Nous n'avons trouvé aucun outil d'analytics sur ce site.

Un outil de mesure d'audience vous permet d'analyser l’activité des visiteurs sur votre site. Vous devriez installer au moins un outil Analytics. Il est souvent utile d’en rajouter un second, afin de confirmer les résultats du premier.

PageSpeed Insights


Dispositif
Les catégories

Free SEO Testing Tool

Free SEO Testing Tool est un outil gratuit de référencement qui vous aidera à analyser vos pages web