Visualforceページを開発するとき、画面を再描画してくれるreRender属性はとても便利な機能ですが、JavaScriptと一緒に使用するときには注意が必要です。
例えば、apex:inputTextを表示専用にしたい場合、JavaScriptで次のように処理することで対応可能です。
ところがreRenderで再描画した際にこのJS処理が再描画の範囲外にあると処理が実行されずに、readOnlyが解除されてしまいます。
この問題はscriptタグをreRenderの範囲内に設置することで回避できます。
JavaScriptの処理によってはreRenderの範囲内に入れない方がいいケースもあるので状況に応じて使い分けが必要になります。