Кнопка AddThis не будет работать в Ajax, но будет обычно работать

Я знаю, что это длинно, но терпите меня, это важно. Этот вопрос открыл прохладную кучу проблем. И если Вам не нравятся блоки базы данных, продолжать читать.

И, прежде чем любой будет думать о наезде на мой ответ, , видят следующую статью и соединенные статьи к нему о блокировке, и перекомпилировал; два из самых разрушительных ресурсов совершают нападки на базе данных SQL.

http://support.microsoft.com/kb/263889

, который я могу ввести довольно быстро, и мне не нравится вводить больше, чем следующий человек. Но точки ниже я следую чрезвычайно тесно, даже если это больше вводит. Так то, что я создал свои собственные приложения SP, чтобы сделать это для меня.

моменты, которые я поднимаю, действительно важны! Вы могли бы даже сказать себе, "Вы ребячество, это не проблема", ну, в общем, затем Вы не прочитали статьи выше. И , это полностью слабоумно, что M$ вставил бы эти точки как ПРИМЕЧАНИЯ. Эти проблемы мне должны быть ПОЛУЖИРНЫМИ и КРИЧАТЬ.

я также делаю большое кодирование для создания моих основных сценариев с помощью приложений C# для ускорения разработки и этих методов является очень звуковым (ценность 10 лет) для создания SPS сценариев легче и особенно быстрее.

существуют больше, чем это, но это - то, что я делаю для первых 60% из всего.

Лучшие практики

  • Использование скобки вокруг объектов, таким образом, механизм запроса явно знает поле, когда это видит его
  • Использование ТОТ ЖЕ СЛУЧАЙ как имена объекта таблицы и имена полей
  • При вызове SPS из приложения, используйте полностью определенный [dbo]. [procName] с корректным владельцем И случаем. Не Ребячество! Прочитайте статьи выше!
  • Ссылаются на владельца объекта, таким образом, безопасность явно известна и не должна быть вычислена
  • , не ДЕЛАЮТ нас "SP _", поскольку это относится к сохраненному procs системы, и наверху
  • , Использование УСТАНОВИЛО NOCOUNT НА и ВЫДЕЛИЛО NOCOUNT для устранения дополнительных издержек для отслеживания то, сколько записей обновляется в сохраненном proc, если Вам не нужны они. Обычно, Вы не делаете и можно получить огромное увеличение производительности.

Предпочтения

  • Префикс снабдил procs Суффиксом proc
  • каждый сохраненный proc с SEL, UPD, DEL, INS (или ВЫБОР, ОБНОВЛЕНИЕ, УДАЛИТЕ, ВСТАВЬТЕ)
  • , Используют для своей выгоды зарезервированные слова
  • Основные ключевые слова на новой строке (пишущей сценарий)
  • запятые Использования перед столбцами (пишущими сценарий)
  • , представления Префикса с vw
  • не снабжают префиксом таблицы
  • , Имена таблиц, исключительные
  • , Добавляют суффикс к стандартным именам как "_ByPK", "_OrderByLastName", или "_Top15Orders" для вариаций на запас SP

Выбор

CREATE PROC [dbo].[procTable_SEL]
AS
SET NOCOUNT ON
SELECT
    [Column1] = T1.[col1]
  , [Column2] = T1.[col2]
  , [Column3] = T2.[col3]
FROM [dbo].[Table] T1    
INNER JOIN ON [dbo].[Table2] T2 ON T1.ID = T2.ID
WHERE
      T1.[col1] = 'xxx'
  AND T2.[Col3] = 'yyy'
SET NOCOUNT OFF
GO

, Обновление

CREATE PROC [dbo].[procTable_UPD]
AS
SET NOCOUNT ON
UPDATE t1 SET
    [Column1] = @Value1
  , [Column2] = @Value2
  , [Column3] = @Value3
FROM [dbo].[Table1] T1
INNER JOIN ON [dbo].[Table2] T2 ON T1.[ID] = T2.[ID]
WHERE
      T1.[col1] = 'xxx'
  AND T2.[Col3] = 'yyy'
SET NOCOUNT OFF
GO

Вставляет

CREATE PROC [dbo].[procTable_INS]
AS
SET NOCOUNT ON
INSERT INTO [Table1] (
[Column1]
  , [Column2]
  , [Column3]
)
VALUES (
    @Value1
  , @Value2
  , @Value3
)
SET NOCOUNT OFF
GO

, ИЛИ

CREATE PROC dbo.procTable_INS
AS
SET NOCOUNT ON
INSERT INTO [table1] (
    [Column1]
  , [Column2]
  , [Column3]
)
SELECT
    [Column1] = T1.col1
  , [Column2] = T1.col2
  , [Column3] = T2.col3
FROM dbo.Table1 T1    
INNER JOIN ON Table2 T2 ON T1.ID = T2.ID
WHERE
      T1.[col1] = 'xxx'
  AND T2.[Col3] = 'yyy'
SET NOCOUNT OFF
GO

Удаляют

CREATE PROC dbo.procTable_DEL
AS
SET NOCOUNT ON
DELETE
FROM [dbo].[Table1] T1
INNER JOIN ON [dbo].[Table2] T2 ON T1.[ID] = T2.[ID]
WHERE
      T1.[col1] = 'xxx'
  AND T2.[Col3] = 'yyy'
SET NOCOUNT OFF
GO

7
задан TIMEX 21 October 2009 в 21:52
поделиться

6 ответов

, если я правильно понимаю ваш вопрос, в обратном вызове функции ajax привяжите переход к кнопке add-this.

 $.ajax({
   type: "POST",
   url: "some.php",
   data: "name=John&location=Boston",
   success: function(){
     $('.addthis_button').hover(
       function(){
         //do mouse over
       },function(){
         //do mouse out
     });
   }
 });

вы также можете попробовать

$('.addthis_button').live('mouseover',function(){//do mouseover});
$('.addthis_button').live('mouseout',function(){//do mouseout});

у меня есть никогда не использовался вживую, но похоже, что это сработает для вас, поскольку ваша кнопка add_this создается после $ (document) .ready ()

2
ответ дан 6 December 2019 в 07:51
поделиться

Похоже, что сценарий вызывает событие onLoad javascript, и использование этого вызова ajax фактически не запускает это событие. Вы можете попробовать другой виджет «Поделиться этим»?

Например, http://sharethis.com/#STS=g12m3ugh.21zb или предварительно загрузить эту кнопку?

Не могли бы вы опубликовать еще немного истории о том, что вы делаете?

0
ответ дан 6 December 2019 в 07:51
поделиться

Является ли файл details.html полностью совместимой страницей? Теги HTML, BODY, HEAD и т. Д.?

Если так, я думаю, что все может стать неприятным, когда вы попытаетесь загрузить его на другую страницу. Я бы либо изменил details.html, чтобы просто включить нужную вам разметку barebones, либо - если вам нужно, чтобы она по-прежнему была доступна индивидуально - вы могли бы использовать jQuery, чтобы вырезать необходимые биты после вызова ajax и вводить только эту часть.

Details.html

<html>
<head>
</head>
<body>
    <div id="details">
    The needy bits.......
    </div>
</body>
</html>

Index.html

$("#targetDivID").load("detail.html #details");
0
ответ дан 6 December 2019 в 07:51
поделиться

Добавьте этот фрагмент .js в загружаемый .html. Замените "#atbutton" селектором вашей кнопки.

addthis.button ("# atbutton");
0
ответ дан 6 December 2019 в 07:51
поделиться

Я недавно столкнулся с проблемами с использованием AddThis на всем сайте Ajax и смог придумать пару решений для этой проблемы.

Оказывается, есть переменная, которую вы можете пройти при загрузке скрипта AJAX, а также способ повторно инициализации скрипта, если DOM перезагружается через AJAX. Я разместил полное решение подробно в своем блоге здесь:

http://joecurlee.com/2010/01/21/how-to-use-addthis-with-ajax-and-overflowauto/

Кратко обобщены, решение загружает AddThis с переменной Domready = 1 прилагаемой и повторной инициализации скрипта, удаляя начальную нагрузку, а затем динамически перезагружать скрипт:

var script = 'http://s7.addthis.com/js/250/addthis_widget.js#domready=1';
if (window.addthis){
    window.addthis = null;
}
$.getScript( script );
14
ответ дан 6 December 2019 в 07:51
поделиться

Решил ту же проблему, и это решило ее для меня во всех основных браузерах (IE6 +, FF, Safari в MAC / XP):

http: //joecurlee.com/2010/01/21/how-to-use-addthis-with-ajax-and-overflowauto/comment-page-1/#comment-24

2
ответ дан 6 December 2019 в 07:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: