2009-11-19 7 views
0

Je travaille sur un système qui doit rester constant (et je veux dire constante) piste du côté du navigateur change à une zone de texte via les demandes AJAX au serveur. Idéalement, chaque caractère serait stocké en tant que ligne dans la base de données, avec la position dans laquelle il a été inséré et un horodatage. J'espère qu'il y aura une bonne bibliothèque Javascript que j'ai ratée, ce qui rendra trivial tout cela dans le navigateur, mais je pense que les incohérences dans le DOM empêchent de le faire de quelque manière que ce soit. sera raisonnable en ressources. Je suis un utilisateur de jQuery, si cela fait une différence. Les documents en cours de création peuvent devenir très volumineux, il est donc inefficace de renvoyer le document entier et d'effectuer un diff sur le serveur, mais je pense que je peux trouver un moyen de ne renvoyer que les lignes concernées par un edit. Malheureusement, j'ai besoin d'un moyen d'obtenir par caractère, par opposition à diffs par ligne calculé une fois qu'il atteint le serveur. Je voudrais utiliser Ruby, donc s'il y a une bibliothèque Ruby qui peut le faire, génial. Si non, existe-t-il un algorithme générique pour calculer les deltas réels entre deux chaînes que quelqu'un peut suggérer?Javascript Textarea Surveillance/Ruby Delta Calcul

Résumé:
bibliothèque Javascript pour textarea très bien contrôlé ou
bibliothèque Ruby pour le calcul des deltas ou
algorithme de calcul delta générique

Dans cet ordre. Merci d'avance.

Répondre

0

Je pense que vous pouvez essayer d'avoir Ruby appeler diff via la ligne de commande, puis retourner les diff retour à l'utilisateur;)

+0

... 'Non diff' calcule les différences entre les fichiers en termes de lignes. Si vous changez un caractère sur une ligne, il marque cette ligne comme étant supprimée et la ligne avec le nouveau caractère ajouté. J'ai besoin d'un moyen pour détecter un seul personnage. – chrisrhoden